Apparatus, system, and method of controlling connection among terminals and recording medium storing connection control program

ABSTRACT

When a request for participating in a session being performed by a plurality of participating terminals is received from a terminal that is not participated in the session, a system extracts identification information of one or more candidate terminals that are associated with the participating terminal for each one of the plurality of participating terminals, and determines whether identification information of the terminal that sends the request is included in the extracted candidate terminal identification information to generate a determination result. The determination result is used to determine whether to allow the terminal that sends the request to connect with the plurality of participating terminals to participate in the session.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is based on and claims priority pursuant to 35U.S.C. §119 to Japanese Patent Application Nos. 2011-039920, filed onFeb. 25, 2011, and 2011-199212, filed on Sep. 13, 2011, in the JapanPatent Office, the entire disclosure of which is hereby incorporatedherein by reference.

BACKGROUND

1. Field

The present invention generally relates to controlling connection amonga plurality of transmission terminals.

2. Background

With the need for reducing costs or times associated with businesstrips, more companies are moving towards videoconference systems to haveteleconference or videoconference among remotely located offices via acommunication network such as the Internet. The videoconference systemsallow transmission of contents data such as image data and/or sound dataamong a plurality of transmission terminals that are remotely locatedfrom one another through the communication network to facilitatecommunication among the plurality of transmission terminals.

To have a videoconference among the plurality of transmission terminals,a user is required to previously register information regardingparticipants, who will be participating in the videoconference beforethe videoconference starts. In case a user who is not previouslyregistsered decides to participate in that videoconference after thevideoconference starts, the unregistered user is not allowed toparticipate unless the unregistered user is registered through theregistration process. The registration process usually requiresadditional time such that it has been inconvenient for the unregistereduser to participate in the videoconference after the videoconferencestarts.

Japanese Patent Application Publication No. H08-256145 describes aconference manager, which manages a permitted user list that registersidentification of a user who is allowed to participate in a conferencewithout the registration process, for each of conferences. When arequest for participating in a specific conference is received from auser, the conference manager determines whether identification of theuser is registered in the permitted user list prepared for the specificconference, and allows the user to participate in the specificconference if the user is registered in the permitted user list.

SUMMARY

While Japanese Patent Application Publication No. H08-256145 allows someusers to participate in the conference without the registration process,the inventors of the present invention have realized that the conferencemanager still needs to manage a permitted user list in association witheach of the conferences. In view of the above, one aspect of the presentinvention is to provide a system for controlling connections among aplurality of terminals through a network, which allows a user who is notregistered as a participant of a specific session to participate in thatsession, without requiring the system to manage additional data.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the disclosure and many of the attendantadvantages and features thereof can be readily obtained and understoodfrom the following detailed description with reference to theaccompanying drawings, wherein:

FIG. 1 is a schematic block diagram illustrating a transmission systemaccording to an example embodiment of the present invention;

FIG. 2 is a schematic block diagram illustrating a hardware structure ofa transmission terminal of the transmission system of FIG. 1;

FIG. 3 is a schematic block diagram illustrating a hardware structure ofany one of a transmission management system, a relay terminal, a programproviding system, and a maintenance system of the transmission system ofFIG. 1;

FIG. 4 is a perspective view illustrating the outer appearance of thetransmission terminal of the transmission system of FIG. 1, according toan example embodiment of the present invention;

FIG. 5 is a schematic block diagram illustrating functional structuresof the transmission system of FIG. 1;

FIG. 6 is a schematic block diagram illustrating a functional structureof a state manager of the transmission management system of FIG. 5;

FIG. 7 is a schematic block diagram illustrating a functional structureof a relay terminal selector of the transmission management system ofFIG. 5;

FIG. 8 is an example data structure of a data quality management table,managed by the transmission management system of FIG. 5;

FIGS. 9A to 9C are illustrations for explaining image quality of imagedata transmitted or received by the transmission system of FIG. 1;

FIG. 10 is an example data structure of a relay terminal managementtable, managed by the transmission management system of FIG. 5;

FIG. 11 is an example data structure of a terminal authenticationmanagement table, managed by the transmission management system of FIG.5;

FIG. 12 is an example data structure of a terminal management table,managed by the transmission management system of FIG. 5;

FIG. 13 is an example data structure of a candidate list managementtable, managed by the transmission management system of FIG. 5;

FIG. 14 is an example data structure of a session management table,managed by the transmission management system of FIG. 5;

FIG. 15 is an example data structure of a quality management table,managed by the transmission management system of FIG. 5;

FIG. 16 is an example data structure of a relay terminal selectionmanagement table, managed by the transmission management system of FIG.5;

FIG. 17 is an example data structure of a state change management table,managed by the transmission management system of FIG. 5;

FIG. 18 is an example data structure of a state change management table,managed by the transmission management system of FIG. 5;

FIG. 19 is a data sequence diagram illustrating operation of managingstate information indicating an operation state of the relay terminal ofthe transmission system of FIG. 1, according to an example embodiment ofthe present invention;

FIG. 20 is an illustration for explaining transmission or reception ofdata such as image data, sound data, or management data, performed bythe transmission system of FIG. 1;

FIGS. 21A and 21B are a data sequence diagram illustrating operation ofestablishing communication among two or more transmission terminals ofthe transmission system of FIG. 1, according to an example embodiment ofthe present invention;

FIG. 22 is an example screen of a candidate list, displayed by a displayof the transmission terminal of FIG. 5;

FIG. 23 is a data sequence diagram illustrating operation of managing arequest for staring communication with a counterpart terminal that isgenerated by a request terminal, performed by the transmission system ofFIG. 1, according to an example embodiment of the present invention;

FIG. 24 is a flowchart illustrating operation of changing communicationstates of the request terminal and the counterpart terminal, performedby the management system of FIG. 5, according to an example embodimentof the present invention;

FIG. 25 is a data sequence diagram illustrating operation of managing aresponse to the request for starting communication with the counterpartterminal, generated by the counterpart terminal, performed by thetransmission system of FIG. 1, according to an example embodiment of thepresent invention;

FIG. 26 is a data sequence diagram illustrating operation of managing arequest for starting relaying of contents data through a relay terminalthat is generated by the request terminal, performed by the transmissionsystem of FIG. 1, according to an example embodiment of the presentinvention;

FIG. 27 is a flowchart illustrating operation of changing acommunication state of the transmission terminal, performed by themanagement system of FIG. 5, according to an example embodiment of thepresent invention;

FIG. 28 is a data sequence diagram illustrating operation oftransmitting or receiving contents data among the terminals, performedby the transmission system of FIG. 1, according to an example embodimentof the present invention;

FIG. 29 is a data sequence diagram illustrating operation of managing arequest for participating in a contents data session that is establishedthat is generated by a participation requesting terminal, performed bythe transmission system of FIG. 1, according to an example embodiment ofthe present invention;

FIG. 30 is a flowchart illustrating operation of determining whether toallow the participation requesting terminal to participate in thecontents data session using the candidate list, performed by themanagement system of FIG. 5, according to an example embodiment of thepresent invention;

FIG. 31 is an illustration for explaining a distance of the path betweenthe transmission terminals;

FIG. 32 is a flowchart illustrating operation of changing acommunication state of the transmission terminal, performed by themanagement system of FIG. 5, according to an example embodiment of thepresent invention;

FIG. 33 is a data sequence diagram illustrating operation of managing arequest for leaving from the contents data session that is generated bythe request terminal, performed by the transmission system of FIG. 1,according to an example embodiment of the present invention;

FIG. 34 is an example screen of a candidate list, displayed by a displayof the transmission terminal of FIG. 5; and

FIG. 35 is an illustration for explaining transition of thecommunication state of a transmission terminal.

The accompanying drawings are intended to depict example embodiments ofthe present invention and should not be interpreted to limit the scopethereof. The accompanying drawings are not to be considered as drawn toscale unless explicitly noted.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the presentinvention. As used herein, the singular forms “a”, “an” and “the” areintended to include the plural forms as well, unless the context clearlyindicates otherwise. It will be further understood that the terms“includes” and/or “including”, when used in this specification, specifythe presence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

In describing example embodiments shown in the drawings, specificterminology is employed for the sake of clarity. However, the presentdisclosure is not intended to be limited to the specific terminology soselected and it is to be understood that each specific element includesall technical equivalents that operate in a similar manner.

Referring now to FIG. 1, a transmission system 1 is explained accordingto an example embodiment of the present invention.

In one example, the transmission system 1 functions as a data providingsystem that transmits contents data from one transmission terminal toanother transmission terminal in one direction through a transmissionmanagement system 50. In another example, the transmission system 1functions as a two-way communication system that exchanges variousinformation including image data and/or sound data that is used toconvey human's feelings between or among two or more of a plurality oftransmission terminals 10 each of which functioning as a communicationterminal, through the transmission management system 50 that functionsas a communication management system. When functioning as thecommunication system, the transmission system 1 may be implemented as avideoconference system, video teleconference system, voice conferencesystem, voice teleconference system, or personal computer screen sharingsystem.

In the following examples, it is assumed that the transmission system 1of FIG. 1 is implemented as the videoconference system, which is oneexample structure of the communication system. Based on this assumption,the transmission management system 50 is implemented as thevideoconference communication management system, which is one examplestructure of the communication management system. Further, thetransmission terminal 10 is implemented as the videoconferencecommunication terminal, which is one example structure of thecommunication terminal. However, the use of transmission system 1 is notlimited to the following examples such that the transmission system 1may be implemented as the transmission system or the communicationsystem as described above.

The transmission system 1 of FIG. 1 includes a plurality of transmissionterminals 10 aa, 10 ab, 10 ac, 10 b, 10 bb, 10 bc, 10 ca, 10 cb, 10 ce,10 da, 10 db, 10 dc, etc., a plurality of displays 120 aa, 120 ab, 120ac, 120 ba, 120 bb, 120 bc, 120 ca, 120 cb, 120 cc, 120 da, 120 db, 120dc, etc., a plurality of relay terminals 30 a, 30 b, 30 c, 30 d, and 30e, the transmission management system 50, a program providing system 90,and a maintenance system 100.

For the descriptive purposes, in this example, any number of theplurality of terminals 10 aa to 10 dc, etc., may be collectively or eachreferred to as the terminal 10. Any number of the plurality of displays120 aa to 120 dc, etc., may be collectively or each referred to as thedisplay 120. Any one of the plurality of relay terminals 30 a, 30 b, 30c, 30 d, and 30 e may be collectively or each referred to as the relayterminal 30. The transmission management system 50 may be referred to asthe “management system” 50. For the descriptive purposes, in thefollowing examples, the request terminal 10A includes any terminal 10that sends request information to another terminal 10 to startcommunication with the terminal 10 through the transmission managementsystem 50. The counterpart terminal 10B includes any terminal 10 thatreceives request information from the request terminal 10A through thetransmission management system 50 to accept or reject the request forstarting communication with the request terminal 10A. In alternative tothe request for starting communication, any terminal 10 may send anyother type of request information to the transmission management system50, for example, a request for relaying contents data, a request forparticipating in videoconference, a request for leaving fromvideoconference, etc.

The transmission terminal 10 transmits or receives contents data to orfrom another transmission terminal 10. Examples of contents datainclude, but not limited to, image data and/or sound data to betransmitted or received through a session established between or amongthe terminals 10 for communication. In this example, it is assumed thata moving image is transmitted as the image data. Alternatively, a stillimage, or both of the still image and the moving image, may betransmitted as the image data. The relay terminal 30 relays image dataand/or sound data between or among the plurality of terminals 10. Thetransmission management system 50 centrally manages the transmissionterminal 10 and the relay terminal 30.

The plurality of routers 70 a, 70 b, 70 c, 70 d, 70 ab and 70 cd, whichmay be collectively or each referred to as the router 70, selects aroute that is most suitable for transmitting contents data such as imagedata and sound data.

The program providing system 90 includes a hard disk device (HD) 204(FIG. 3), which stores a terminal control program that causes theterminal 10 to perform various functions or operations. For example, theprogram providing system 90 sends the terminal control program to theterminal 10 through the Internet 2 i to cause the terminal 10 to installthe terminal control program. Further, the HD 204 of the programproviding system 90 may store a relay control program that causes therelay terminal 30 to perform various functions or operations. Forexample, the program providing system 90 sends the relay control programto the relay terminal 30 through the Internet 2 i to cause the relayterminal 30 to install the relay control program. Further, the HD 204 ofthe program providing system 90 may store a transmission managementprogram that causes the management system 50 to perform variousfunctions or operations. For example, the program providing system 90sends the transmission management program to the management system 50 tocause the management system 50 to install the transmission managementprogram.

The maintenance system 100 is implemented as a computer capable ofmaintaining, managing, fixing, or upgrading at least one of the terminal10, relay terminal 30, management system 50, and program providingsystem 90. Assuming that the maintenance system 100 is provided within acountry, and the terminal 10, the relay terminal 30, the managementsystem 50, and the program providing system 90 are each installedoutside the country, the maintenance system 100 maintains, manages,fixes, or upgrades at least one of the terminal 10, relay terminal 30,management system 50, and program providing system 90, remotely throughthe communication network 2. The maintenance system 100 may managemaintenance of at least one of the terminal 10, relay terminal 30,management system 50, and program providing system 90 without using thecommunication network 2. For example, a machine type number, amanufacturing number, customer information, maintenance and repairinformation, and failure log information may be maintained at themaintenance system 100 without using the communication network 2.

Still referring to FIG. 1, the terminals 10 aa to 10 ac, the relayterminal 30 a, and the router 70 a are connected to a local area network(LAN) 2 a. The terminals 10 ba to 10 bc, the relay terminal 30 b, andthe router 70 b are connected to a LAN 2 b. The LAN 2 a and the LAN 2 bare connected to a leased line 2 ab in which the router 70 ab isprovided. It is assumed that these devices including the terminals 10 aato 10 bc are located in an area A. For example, assuming that the area Ais any area in Japan, the LAN 2 a could be located within an office in acity such as Tokyo, and the LAN 2 b could be located within an office inanother city such as Osaka.

The terminals 10 ca to 10 cc, the relay terminal 30 c, and the router 70c are connected to a LAN 2 c. The terminals 10 da to 10 dc, the relayterminal 30 d, and the router 70 d are connected to a LAN 2 d. The LAN 2c and the LAN 2 d are connected to a leased line 2 cd in which therouter 70 cd is provided. It is assumed that these devices including theterminals 10 ca to 10 dc are located in an area B apart from the area A.For example, assuming that the area is any area in the United States,the LAN 2 c could be located within an office in a city such as NewYork, and the LAN 2 d could be located within an office in another citysuch as Washington, D.C. The area A and the area B are connected throughthe Internet 2 i, via the routers 70 ab and 70 cd.

The management system 50, the program providing system 90, and themaintenance system 100 are connected through the Internet 2 i to theterminal 10 and the relay terminal 30. Any one of the management system50, the program providing system 90 and the maintenance system 100 maybe located at any location within or outside any one of the area A andthe area B.

The relay terminal 30 e is connected to the terminal 10 through thecommunication network 2 to be communicable with each other. The relayterminal 30 e is provided in an area other than a local area such as thearea A or the area B. This causes the relay terminal 30 e to be freefrom the influences by communication that takes place in the local area.In this example, the relay terminal 30 e is always turned on to operate.In case the request terminal 10A in the area A or the area B iscommunicating with a counterpart terminal 10B that is provided in anarea other than the local area A or B, the relay terminal 30 e isselected as a relay terminal that relays contents data between theterminals 10A and 10B. In case the request terminal 10A in the area A orthe area B is communicating with a counterpart terminal 10B that isprovided within the local area A or the area B, the relay terminal 30 eis selected as a relay terminal that relays contents data between theterminals 10A and 10B, if none of the relay terminals 30 a to 30 doperates.

In this example, the communication network 2 includes the LAN 2 a, LAN 2b, leased line 2 ab, Internet 2 i, leased line 2 cd, LAN 2 c, and LAN 2d. Any one or any portion of these lines or any other lines that may beincluded in the communication network 2 may be implemented as wirednetwork or wireless network such as Wireless Fidelity (WiFi) network orBluetooth network.

As shown in FIG. 1, the terminal 10, the relay terminal 30, themanagement system 50, the router 70, the program providing system 90,and the maintenance system 100 are each provided with four digitnumbers. These four digit numbers separated by dots are the simpleexpressions of IP addresses respectively assigned to any one of thedevices shown in FIG. 1, each of which has a function of communicationdevice. For example, the IP address of the terminal 10 aa is “1.2.1.3”.For simplicity, it is assumed that the IP address is expressed in IPv4.Alternatively, the IP address may be expressed in IPv6.

<Hardware Structure of Transmission System>

Next, a hardware structure of the transmission system 1 is explainedaccording to an example embodiment of the present invention. FIG. 4 is aperspective view illustrating the outer appearance of the terminal 10 ofthe transmission system 1. In FIG. 4, the longitudinal direction of theterminal 10 is referred to as X direction. The direction orthogonal tothe X direction, which is the horizontal direction of the terminal 10,is referred to as the Y direction. The direction orthogonal to the Xdirection and the Y direction is referred to as the Z direction.

As illustrated in FIG. 4, the terminal 10 includes a body 1100, an arm1200, and a camera housing 1300. The body 1100 includes a front sidewall 1110 having a plurality of air intake holes that are formed overthe nearly entire surface of the intake surface of the front side wall1100. The body 1100 further includes a back side wall 1120 provided withan exhaust surface 1121 having a plurality of exhaust holes over thenearly entire surface of the exhaust surface 1121. When a cooling fanthat is provided within the body 1100 is driven, air flows in throughthe intake holes of the intake surface and out through the exhaust holesof the exhaust surface 1121. The body 1100 further includes a right sidewall 1130 formed with a sound pickup hole 1131. Through the sound pickuphole 1131, a microphone 114 (FIG. 2) of the terminal 10 is able to catchsounds such as human voice or any sound including noise.

The body 1100 has an operation panel 1150, which is provided at a sidetoward the right side wall 1130. The operation panel 1150 includes aplurality of operation buttons 108 a to 108 e (“the operation button108”), a power switch 109, an alarm lamp 119, and a plurality of soundoutput holes 1151. Through the sound output holes 1151, a speaker 115(FIG. 2) of the terminal 10 is able to output sounds such as soundsgenerated based on sounds such as human voice. The body 1100 furtherincludes a holder 1160, which is provided at a side toward the left sidewall 1140. The holder 1160, which has a concave shape, accommodatestherein the arm 1200 and the camera housing 1300. The right side wall1130 of the body 1100 further includes a plurality of ports 1132 a to1132 c (the ports 1132) each of which allows electric connectionsbetween an outside device connection interface (I/F) 118 (FIG. 2) and anoutside device through a cable. The left side wall 1140 of the body 1100is provided with a connection port for electrical connection between theoutside device connection I/F 118 (FIG. 2) and a cable 120 c for thedisplay 120.

The arm 1200 is fixed to the body 1100 via a torque hinge 1210. With thetorque hinge 1210, the arm 1200 can be rotated in directions of up anddown with respect to the body 1100, while making a tilt angle θ1 of upto 135 degrees. FIG. 4 illustrates the case where the tilt angle θ1 is90 degrees.

The camera housing 1300 incorporates therein a camera 112 (FIG. 2) thattakes an image of an object. The object may be a part of a user,document, or a room where the terminal 10 is located. The camera housing1300 is fixed to the arm 1200 through a torque hinge 1310. With thetorque hinge 1310, the camera housing 1300 can be rotated with respectto the arm 1200, while making a pan angle θ2 from about −180 degrees to+180 degrees and a tilt angle θ3 that ranges from about −45 degrees to+45 degrees in the direction of up, down, right, and left. In FIG. 4,the pan angle θ2 and the tilt angle θ3 are each 0 degree.

The relay terminal 30, management system 50, program providing system 90and maintenance system 100 are each implemented by a general-purposecomputer such as a personal computer or a server computer. Forsimplicity, explanation of the outer appearance of the computer isomitted.

FIG. 2 illustrates a hardware structure of the terminal 10 according toan example embodiment of the present invention. The terminal 10 includesa central processing unit (CPU) 101, a read only memory (ROM) 102, arandom access memory (RAM) 103, a flash memory 104, a solid state drive(SSD) 105, a medium drive 107, the operation button 108, the powerswitch 109, a network interface (I/F) 111, the camera 112, an imagingelement interface (I/F) 113, the microphone 114, the speaker 115, asound input/output interface (I/O I/F) 116, a display interface (I/F)117, the outside device connection interface (I/F) 118, and an alarmlamp 119, which are electrically connected through a bus 110 such as anaddress bus or data bus.

The CPU 101 controls entire operation of the terminal 10. The ROM 102stores therein a control program for execution by the CPU 101, such asan initial program loader (IPL). The RAM 103 functions as a work area ofthe CPU 101. The flash memory 104 stores therein various data such asthe terminal control program, image data, or voice data. The SSD 105controls reading or writing of various data with respect to the flashmemory 104 under control of the CPU 101. The medium drive 107 controlsreading or writing of various data with respect to a removable recordingmedium 106 such as a flash memory. The operation button 108 allows theuser to input a user instruction, for example, by allowing the user toselect a communication destination such as the counterpart terminal 10B.The power switch 109 allows the user to switch on or off the power ofthe terminal 10. The network I/F 111 allows the terminal 10 to transmitdata through the communication network 2.

The camera 112 takes an image of an object to obtain image data undercontrol of the CPU 101. The imaging element I/F 113 controls operationof the camera 112. The microphone 114 catches sounds such as voice. Thespeaker 115 outputs sounds such as sounds generated based on voice. Thesound I/O I/F 116 controls input or output of sound signals such asvoice signals with respect to the microphone 114 and the speaker 115under control of the CPU 101. The display I/F 117 transmits image datato the display 120 under control of the CPU 101. The outside deviceconnection I/F 118 controls connection of the terminal 10 to varioustypes of outside device such as the connection port described abovereferring to FIG. 4. The alarm lamp 119 notifies the user when a troubleis detected in the terminal 10.

The display 120 may be implemented by a liquid crystal display (LCD) oran organic light emitting display, which displays various data such asan image of an object or an operation icon. As illustrated in FIGS. 2and 4, the display 120 is connected to the display I/F 117 through thecable 120 c. The cable 120 c may be implemented by an analog RCB (VGA)signal cable, a component video cable, a high-definition multimediainterface (HDMI) signal cable, or a digital video interactive (DVI)signal cable.

The camera 112 includes a plurality of devices such as a lens system,and a solid-state image sensing device that photo-electrically convertsa light to generate an image of an object. For example, the solid-stateimage sensing device includes a complementary metal oxide semiconductor(CMOS) or a charge coupled device (CCD).

The outside device connection I/F 118 may be connected to an outsidedevice such as a camera, microphone, or speaker through a universalserial bus (USB) cable, which is connected to the connection port 1132of the body 1100. When the outside camera is connected to the terminal10, the CPU 101 causes the terminal 10 to capture an image using theoutside camera, rather than the camera 112 that is incorporated in theterminal 10. When the outside microphone or the outside speaker isconnected to the terminal 10, the CPU 101 causes the terminal 10 to usethe outside microphone or the outside speaker in replace of theincorporated microphone 114 or the incorporated speaker 115.Alternatively, the CPU 101 may allow the user at the terminal 10 to useselected one of the outside device and the internal device.

The recording medium 106, which can be freely attached to or detachedfrom the terminal 10, includes any desired type of recording medium. Inalternative to the flash memory 104, any nonvolatile memory that isreadable and writable under control of the CUP 101 may be used such asElectrically Erasable and Programmable ROM (EEPROM).

The terminal control program may be written onto a recording medium thatis readable by a general-purpose computer such as the recording medium106 in any format that is installable or executable by a general-purposecomputer. Once the terminal control program is written onto therecording medium, the recording medium may be distributed. Further, theterminal control program may be stored in any desired memory other thanthe flash memory 104, such as the ROM 102.

FIG. 3 illustrates a hardware structure of the management system 50 ofFIG. 1. The management system 50 includes a CPU 201, a ROM 202, a RAM203, the HD 204, a hard disk drive (HDD) 205, a medium drive 207, adisplay 208, a network interface (I/F) 209, a keyboard 211, a mouse 212,and a CD-ROM drive 214, which are electrically connected through a bus210 such as an address bus or a data bus.

The CPU 201 controls entire operation of the management system 50. TheROM 202 stores a control program for execution by the CPU 201, such as atransmission management program. The RAM 203 functions as a work area ofthe CPU 201. The HD 204 stores therein various data such as thetransmission management program. The HDD 205 controls reading or writingof various data with respect to the HD 204 under control of the CPU 201.The medium drive 207 controls reading or writing of various data withrespect to a removable recording medium 206 such as a flash memory. Thedisplay 208 displays various data such as a cursor, menu, window,character, or image. The network I/F 209 allows the management system 50to transmit data through the communication network 2. The keyboard 211includes a plurality of keys, each of which is used for inputting a userinstruction through a character, a numeral, or a symbol. The mouse 212allows the user to input a user instruction including, for example,selection or execution of a specific instruction, selection of an areato be processed, and instruction of cursor movement. The CD-ROM drive214 controls reading or writing of various data with respect to a CD-ROM213. In alternative to the CD-ROM 213, any removable recording mediummay be used.

The transmission management program may be written onto a recordingmedium that is readable by a general-purpose computer such as therecording medium 206 or the CD-ROM 213 in any format that is installableor executable by the general-purpose computer. Once the transmissionmanagement program is written onto the recording medium, the recordingmedium may be distributed. Further, the transmission management programmay be stored in any desired memory other than the HD 204, such as theROM 202.

The relay terminal 30 is substantially similar in hardware structure tothe management system 50 of FIG. 3, except for replacement of thetransmission management program with a relay terminal control programthat is used for controlling the relay terminal 30. The relay terminalcontrol program may be written onto a recording medium that is readableby a general-purpose computer such as the recording medium 206 or theCD-ROM 213 in any format that is installable or executable by thegeneral-purpose computer. Once the relay terminal control program iswritten onto the recording medium, the recording medium may bedistributed. Further, the relay terminal control program may be storedin any desired memory other than the HD 204, such as the ROM 202.

The program providing system 90 is substantially similar in hardwarestructure to the management system 50 of FIG. 3, except for replacementof the transmission management program with a program providing programthat is used for controlling the program providing system 90. Theprogram providing program may be written onto a recording medium that isreadable by a general-purpose computer such as the recording medium 206or the CD-ROM 213 in any format that is installable or executable by thegeneral-purpose computer. Once the program providing program is writtenonto the recording medium, the recording medium may be distributed.Further, the program providing program may be stored in any desiredmemory other than the HD 204, such as the ROM 202.

The maintenance system 100 is substantially similar in hardwarestructure to the management system 50 of FIG. 3, except for replacementof the transmission management program with a maintenance program thatis used for controlling the maintenance system 100. The maintenanceprogram may be written onto a recording medium that is readable by ageneral-purpose computer such as the recording medium 206 or the CD-ROM213 in any format that is installable or executable by thegeneral-purpose computer. Once the maintenance program is written ontothe recording medium, the recording medium may be distributed. Further,the maintenance program may be stored in any desired memory other thanthe HD 204, such as the ROM 202.

Other examples of removable recording medium, which may be used inreplace of the CD-ROM 213, include, but not limited to, compact discrecordable (CD-R), digital versatile disk (DVD), and blue ray disc.

Referring now to FIG. 5, a functional structure of the transmissionsystem 1 of FIG. 1 is explained according to an example embodiment ofthe present invention. More specifically, FIG. 5 illustrates afunctional structure of the transmission terminal 10, the relay terminal30, and the transmission management system 50. As illustrated in FIG. 1,the terminal 10, the relay terminal 30, and the management system 50exchange data with one another through the communication network 2. InFIG. 5, the program providing system 90 and the maintenance system 100of FIG. 1 are omitted.

<Functional Structure of Terminal>

The terminal 10 includes a data transmit/receive 11, an operation input12, a login request 13, an imaging unit 14, a sound input 15 a, a soundoutput 15 b, a display control 16, a delay detector 18, a memory control19, and a candidate list generator 20. These units shown in FIG. 5correspond to a plurality of functions or functional modules, which areexecuted according to an instruction of the CPU 101 (FIG. 2) that isgenerated according to the terminal control program being loaded fromthe ROM 102 onto the RAM 103. The terminal 10 further includes avolatile memory 1100 that may be implemented by the RAM 103 (FIG. 2),and a nonvolatile memory 1100 that may be implemented by the flashmemory 104 (FIG. 2).

The data transmit/receive 11, which may be implemented by the networkI/F 111 (FIG. 2), transmits or receives various data or information toor from another terminal, device, or system, through the communicationnetwork 2. In this example, the data transmit/receive 11 startsreceiving state information that indicates the operation state of eachcandidate counterpart terminal 10 from the management system 50, beforestarting communication with any counterpart terminal 10B.

The state information of the terminal 10 indicates whether the terminal10 is online or offline. If the terminal 10 is online, the stateinformation of the terminal 10 further indicates whether the terminal 10is communicating with another terminal 10, waiting for call from anotherterminal 10, or requesting another terminal 10 to have communication,etc. Further, the state information of the terminal 10 may furtherindicate whether the terminal 10 is in error state or trouble state, forexample, due to disconnection of a cable that connects the terminal 10with the communication network 2. Further, the state information of theterminal 10 may further indicate whether the terminal 10 is in mutestate in which output of sounds or output of images is refrained. In thefollowing examples, the state information of the terminal 10 includesinformation regarding the operation state of the terminal 10 (“operationstate information”), and information regarding the communication stateof the terminal 10 (“communication state information”).

The operations or functions of the operation input 12 of the terminal 10of FIG. 5 are performed by the operation button 108 and the power switch109 (FIG. 2) according to an instruction received from the CPU 101. Theoperation input 12 receives a user instruction input by the user throughthe operation button 108 or the power switch 109. For example, when theuser selects “ON” using the power switch 109, the operation input 12receives a user instruction for turning the power on, and causes theterminal 10 to turn on the power.

The operations or functions of the login request 13 are performedaccording to an instruction received from the CPU 101. When the power ofthe terminal 10 is turned on, the login request 13 automatically causesthe data transmit/receive 11 to send login request information thatrequests the login process, and a current IP address of the terminal 10,to the management system 50 through the communication network 2. Whenthe power of the terminal 10 is turned off according to a userinstruction received from the user through the power switch 109, thelogin request 13 causes the data transmit/receive 11 to send currentstate information of the terminal 10 to the management system 50, whichindicates that the power of the terminal 10 is turned off. After thestate information is sent, the operation input 12 turns off the power ofthe terminal 10. As the state information of the terminal 10 is sentevery time the power is turned off, the management system 50 is able toknow that the terminal 10 is off-line in realtime.

The operations or functions of the imaging unit 14 of the terminal 10 ofFIG. 5 are performed by the camera 112 and the imaging element I/F 113according to an instruction received from the CPU 101. The imaging unit14 takes an image of an object to output image data of the object.

The operations or functions of the sound input 15 a of the terminal 10of FIG. 5 are performed by the microphone 114 and the sound input/outputI/F 116 according to an instruction received from the CPU 101. After themicrophone 114 converts voice of the user at the terminal 10 to a voicesignal, the sound input 15 a inputs the voice signal in the form ofvoice data. The operations or functions of the sound output 15 b of theterminal 10 of FIG. 5 are performed by the speaker 115 and the soundinput/output I/F 116 according to an instruction received from the CPU101. The sound output 15 b outputs a voice signal of voice data that isreceived from another terminal 10 through the speaker 115.

The display control 16 may be implemented by the display I/F 117 (FIG.2), and sends various data to the display 120 for display. Morespecifically, the display control 16 causes the display 120 that isprovided for the request terminal 10A to display a candidate list beforethe request terminal 10A starts videoconference with a desiredcounterpart terminal 10B. The candidate list is generated based on thestate information of the candidate terminal 10 that is received by thedata transmit/receive 11 after the request terminal 10A establishescommunication with the management system 50.

For example, the display control 16 may display a candidate list frame1100-1 as illustrated in FIG. 22. Within the candidate list frame1100-1, the display 120 further displays a terminal name 1100-2 of eachcandidate terminal 10, which may be any type of identificationinformation for identifying each candidate terminal 10. For example, theterminal name 1100-2 for the terminal 10 ab of FIG. 1 may be expressedas “JAPAN TOKYO OFFICE AB TERMINAL”. For each candidate terminal 10, anicon that reflects the current state of each candidate terminal 10 isdisplayed side by side with the terminal name 1100-2. In this exampleshown in FIG. 22, four types of icons 1100-3 a, 1100-3 b, 1100-3 c, and1100-3 d are displayed depending on the current state of the candidateterminal 10 that can be specified by the operation state and thecommunication state of the candidate terminal 10. For example, the icon1100-3 a indicates that the candidate terminal 10 is online, notcommunicating with any terminal, and available for communication, basedon the operation state “ONLINE” and the communication state “None”. Theicon 1100-3 b indicates that the candidate terminal 10 is offline andnot available for communication, based on the operation state “OFFLINE”.The icon 1100-3 c indicates that the candidate terminal 10 is online,communicating with another terminal, and available for communication,based on the operation state “ONLINE” and the communication state“Busy”. The icon 1100-3 d indicates that the candidate terminal 10 isonline, and requesting another terminal to have communication or isbeing requested by another terminal to have communication such that thecandidate terminal 10 is not available for communication, based on theoperation state “ONLINE” and the communication state “Calling” or“Ringing”. Alternatively, the icon 1100-3 d indicates that the candidateterminal 10 is online, and about to start communication with anotherterminal as a request for starting communication is accepted such thatit is not available for communication, based on the operation state“ONLINE” and the communication state “Accepted”. For the descriptivepurposes, any one of the icons 1100-3 a to 1100-3 d is referred to asthe icon 1100-3.

Within the candidate list frame 1100-1, the display 120 further displaysa scroll bar 1100-4 at the right side. According to selection of one ofthe arrows made by the user at the terminal 10, the display 120 scrollsup or down to show a complete list of terminal names 1100-2 of candidateterminals 10 and icons 1100-3 each of which reflects the state of eachcandidate terminal 10.

The delay detector 18 detects a delay time ms indicating a time periodin which contents data such as image data or sound data sent through therelay terminal 30 from another terminal 10 is delayed, according to aninstruction received from the CPU 101 (FIG. 2).

The memory control 19 is implemented by the SSD 105 (FIG. 2) accordingto an instruction received from the CPU 101. The memory control 19stores various data in the nonvolatile memory 1000, or read out variousdata from the nonvolatile memory 1000. The nonvolatile memory 1000stores therein various data such as terminal identification (ID)information for identifying the terminal 10, a password forauthenticating a user at the terminal 10, image data, and sound datasuch as voice data. The memory control 19 further stores various data inthe volatile memory 1100, or reads out various data from the volatilememory 1100. The volatile memory 1100 overwrites its memory space tostore image data and/or sound data such as voice data every time theterminal 10 communicates with another terminal 10. Before overwritingimage data with new image data, the memory control 19 reads out theimage data for display on the display 120, and the sound data for outputthrough the speaker 115.

The candidate list generator 20 generates or updates a candidate list,based on the candidate list information and the state information of thecandidate terminal 10 that are respectively received from the managementsystem 50. For example, as illustrated in FIG. 22, the candidate listincludes the icon 11-3 that reflects the current state of each candidateterminal 10.

In this example, any one of the terminal ID of the terminal 10 and therelay terminal ID of the relay terminal 30 includes any type ofidentification information that can be expressed by any language,character, symbol, mark, or any combination of language, character,symbol, and mark.

(Functional Structure of Relay Terminal)

Still referring to FIG. 5, a functional structure of the relay terminal30 is explained. The relay terminal 30 includes a data transmit/receive31, a state detector 32, a data quality checker 33, a data qualitymanager 34, a data quality changer 35, and a memory control 39. Uponexecution, the CPU 201 (FIG. 3) loads the relay terminal control programfrom the HD 204 onto the RAM 203 to cause one or more of the unitsillustrated in FIG. 3 to perform functions or operations shown in FIG.5. The relay terminal 30 further includes a nonvolatile memory 3000 thatmay be implemented by the HD 204 (FIG. 3). Various data stored in thenonvolatile memory 3000 is not deleted even when the power of the relayterminal 30 is turned off.

(Data Quality Management Table)

The nonvolatile memory 3000 includes a data quality management database(DB) 3001, which stores a data quality management table illustrated inFIG. 8. The data quality management table of FIG. 8 stores an Internetprotocol (IP) address of the counterpart terminal 10B to which imagedata is transmitted through the relay terminal 30, in association withquality of image data to be transmitted through the relay terminal 30 tothe counterpart terminal 10B.

Referring now to FIGS. 9A to 9C, various image data having differentresolution levels, which are respectively transmitted by the terminal 10of the transmission system 1, are explained. Referring to FIG. 9A, thelow-level resolution image data, which functions as a base image, has160 pixels in the horizontal direction and 120 pixels in the verticaldirection. Referring to FIG. 9B, the medium-level resolution image datahas 320 pixels in the horizontal direction and 240 pixels in thevertical direction. Referring to FIG. 9C, the high-level resolutionimage data has 640 pixels in the horizontal direction and 480 pixels inthe vertical direction. In case of communicating with a narrowbandsignal line, low-quality image data that is generated based on thelow-level resolution image data, which is the base image, istransmitted. In case of communicating with a wideband signal line,medium-quality image data that is generated based on the low-levelresolution image data and the medium-level resolution image data istransmitted. In case of communicating with a broadband signal line,high-quality image data that is generated based on the low-levelresolution image data, the medium-level resolution image data, and thehigh-level resolution image data is transmitted. Any one of theabove-described types of image data may be transmitted together withsound data such as voice data.

For example, the data quality management table of FIG. 8 indicates that,in case of relaying image data to the counterpart terminal 10 having theIP address of “1.3.2.4”, the quality of the image data to be relayed ishigh image quality.

<Functional Structure of Relay Terminal>

Next, a functional structure of the relay terminal 30 is explainedaccording to an example embodiment of the present invention. Morespecifically, in this example, the operations or functions that areperformed by the relay terminal 30, which include the operations orfunctions performed by the units shown in FIG. 5, are performed inrelation to one or more hardware devices of the relay terminal 30 thatare shown in FIG. 3.

The data transmit/receive 31 of FIG. 5 is implemented by the network I/F209 of FIG. 3 according to an instruction received from the CPU 201. Thedata transmit/receive 31 transmits or receives various data orinformation to or from another terminal, device, or system through thecommunication network 2.

The state detector 32, which is implemented by the CPU 201 of FIG. 3,detects an operation state of the relay terminal 30. The operation stateincludes the on-line state (“ON LINE”), the off-line state (“OFF LINE”),and the error state, etc. The on-line state is a state in which therelay terminal 30 is turned on and available for datatransmission/reception. The off-line state is a state in which the relayterminal 30 is not available for data transmission/reception, forexample, as the power is not turned on. The error state is a state inwhich the relay terminal 30 is not available due to an error.

The data quality checker 33, which is implemented by the CPU 201 of FIG.3, searches the data quality management DB 3001 (FIG. 8) using the IPaddress of the counterpart terminal 10B as a search key to extractinformation regarding the quality of image data suitable tocommunication with the counterpart terminal 10B. Based on the extractedinformation regarding the quality of image data, the relay terminal 30determines the quality of image data to be transmitted to thecounterpart terminal 10B.

The data quality manager 34, which may be implemented by the CPU 201 ofFIG. 3, changes the contents of the data quality management DB 3001based on the quality information that is received from the transmissionmanagement system 50. For example, assuming that the request terminal 10aa having the terminal ID “01aa” communicates with the counterpartterminal 10 db having the terminal ID “01db” to transmit or receive highquality image data during videoconference, transmission of image datamay delay for various reasons. For example, if a request terminal 10 bband a counterpart terminal 10 ca start videoconference over thecommunication network 2, transmission of image data from the requestterminal 10 aa to the counterpart terminal 10 db tends to slow down dueto the increase in traffic. In such case, the relay terminal 30 changesthe quality of image data to be transmitted from high image quality tolower image quality. More specifically, the contents in the data qualitymanagement DB 3001 is changed from high-level image quality tomedium-level image quality, based on the quality information indicatingthe use of medium-level image quality.

The data quality changer 35, which may be implemented by the CPU 201 ofFIG. 3, changes the quality of image data received from the requestterminal 10 to the quality of image data according to the contents ofthe data quality management DB 3001. The memory control 39 isimplemented by the HDD 205 of FIG. 3 according to an instructionreceived from the CPU 201. The memory control 39 stores various data inthe nonvolatile memory 3000, or reads out various data from thenonvolatile memory 3000.

<Functional Structure of Transmission Management System>

Next, a functional structure of the management system 50 is explainedaccording to an example embodiment of the present invention. Themanagement system 50 includes a data transmit/receive 51, a terminalauthenticator 52, a state manager 53, a terminal extractor 54, aterminal state obtainer 55, a relay terminal selector 55, a sessionmanager 57, a quality determiner 58, a memory control 59, a delay timemanager 60, a change request determiner 61, a connection determiner 62,and a calculator 63. Upon execution, the CPU 201 (FIG. 3) loads thetransmission management program from the HD 204 onto the RAM 203 tocause the units shown in FIG. 3 to perform operations or functions asillustrated in FIG. 5. The management system 50 further includes anonvolatile memory 5000, which may be implemented by the HD 204 of FIG.3. Various data stored in the nonvolatile memory 5000 is not deletedafter the power of the management system 50 is turned off. Thenonvolatile memory 5000 stores data regarding the candidate list frame1100-1 (FIG. 22). The management system 50 further includes a volatilememory 5100, which may be implemented by the RAM 203 (FIG. 3).

(Relay Terminal Management Table)

The nonvolatile memory 5000 includes a relay terminal managementdatabase (DB) 5001, which stores therein a relay terminal managementtable of FIG. 10. The relay terminal management table of FIG. 10 stores,for each relay terminal ID of the terminal 30, the operation state ofthe relay terminal 30, the received date and time at which themanagement system 50 receives the state information indicating theoperation state of the relay terminal 30 from the relay terminal 30, theIP address of the relay terminal 30, and the maximum data transmissionspeed of the relay terminal 30 in Mbps. For example, for the relayterminal 30 a having the relay terminal ID “111a”, the relay terminalmanagement table of FIG. 10 indicates that the operation state is “ONLINE”, the received date and time at which the management system 50receives the state information is “13:00 PM of Nov. 10, 2009”, the IPaddress of the relay terminal 30 a is “1.2.1.2”, and the maximum datatransmission speed of the relay terminal 30 a is 100 Mbps.

(Terminal Authentication Management Table)

The nonvolatile memory 5000 further includes a terminal authenticationmanagement database (DB) 5002, which stores a terminal authenticationmanagement table of FIG. 11. The terminal authentication managementtable of FIG. 11 stores a plurality of terminal IDs respectivelyassigned to the terminals 10 that are managed by the management system50, in association with a plurality of passwords that are previouslydetermined for the respective terminals 10. For example, referring tothe terminal authentication management table of FIG. 11, the terminal 10aa having the terminal ID “01aa” is assigned with the password “aaaa”.

(Terminal Management Table)

The nonvolatile memory 5000 further includes a terminal managementdatabase (DB) 5003, which stores a terminal management table of FIG. 12.The terminal management table of FIG. 12 stores, for each one of theterminal IDs assigned to the terminals 10, the terminal name to be usedfor communication with the terminal 10, the operation state of theterminal 10, the communication state of the terminal 10, the receiveddate and time at which the management system 50 receives the loginrequest information from the terminal 10, and the IP address of theterminal 10. For example, for the terminal 10 aa having the terminal ID“01aa”, the terminal management table of FIG. 12 indicates that theterminal name is “Japan Tokyo Office AA terminal”, the operation stateis on-line (“ONLINE”), the communication state is “None” indicating thatit is not communicating with another terminal and is available forcommunication, the received date and time is “13:40 PM, Nov. 10, 2009”,and the IP address of the terminal 10 aa is “1.2.1.3”. Examples of thecommunication state include the “Calling” state in which the terminal 10is requesting another terminal to have communication with, the “Ringing”state in which the terminal 10 is being requested by another terminal tohave communication with, the “Accepted” state in which the terminal 10has accepted a call from another terminal or the call from the terminal10 is accepted by another terminal, and the “Busy” state in which theterminal 10 is communicating with another terminal.

(Candidate List Management Table)

The nonvolatile memory 5000 further includes a candidate list managementdatabase (DB) 5004, which stores a candidate list management table ofFIG. 13. The candidate list management table of FIG. 13 stores, for eachone of a plurality of request terminals 10A capable of requesting forvideoconference communication, the terminal ID of the request terminal10A, and one or more terminal IDs that are respectively assigned tocandidate terminals 10 that are previously registered for the requestterminal 10A. In this example, for the request terminal 10A, one or moreterminals 10 of the transmission system 1 of FIG. 1 are previouslyregistered as the candidate terminal 10. For example, the candidate listmanagement table of FIG. 13 indicates that the request terminal 10 aahaving the terminal ID “01aa” is most likely to request forvideoconference with respect to the terminal 10 ab having the terminalID “01ab”, the terminal 10 ba having the terminal ID “01ba”, and theterminal 10 db having the terminal ID “01db”. The management system 50manages the candidate list management table of FIG. 13, for example,according to a user instruction received from any one of the terminals10. For example, in response to a user instruction received from theterminal 10 aa, the management system 50 may add or delete the contentsof the candidate list management table.

(Session Management Table)

The nonvolatile memory 5000 further includes a session managementdatabase (DB) 5005, which stores a session management table of FIG. 14.The session management table of FIG. 14 stores information regardingeach of the sessions that are carried out by at least two terminals 10of the transmission system 1. More specifically, for each session IDthat uniquely identifies each session, the session management table ofFIG. 14 stores a relay terminal ID of the relay terminal 30 to be usedfor transmitting or receiving contents data such as image data and sounddata, a terminal ID of the request terminal 10A, a terminal ID of thecounterpart terminal 10B, a delay time ms indicating a time periodrequired for receiving contents data at the counterpart terminal 10B,the date and time information indicating the time at which themanagement system 50 receives delay information from the counterpartterminal 10B. For example, referring to the session management table ofFIG. 14, for the session having the session ID “sel”, the relay terminal30 e having the relay terminal ID “111e” is selected to relay contentsdata between the request terminal 10 aa having the terminal ID “01aa”and the counterpart terminal 10 db having the terminal ID “01db”.Further, the management system 50 receives the delay information fromthe counterpart terminal 10 db at 14:00 PM, Nov. 10, 2009. Based on thisdate and time information, the delay time ms of 200 milliseconds (ms) isobtained. In case of having videoconference between only two terminals10, the delay time may be determined based on the time when themanagement system 50 receives the delay information transmitted from therequest terminal 10A rather than based on the time when the managementsystem 50 receives the delay information transmitted from thecounterpart terminal 10B. In case of having videoconference with morethan two terminals 10, the delay information transmitted from thecounterpart terminal 10B that receives the contents data is used tomanage the date and time at which the delay information is received.

(Quality Management Table)

The nonvolatile memory 5000 further includes a quality managementdatabase (DB) 5007, which stores a quality management table of FIG. 15.The quality management table of FIG. 15 stores the delay time ms ofimage data in association with the quality of image data. Morespecifically, the quality management table of FIG. 15 indicates that thequality of image data to be processed by the relay terminal 30 islowered, as the delay time ms of the image data at the request terminal10A or the counterpart terminal 10B increases. For example, when thedelay time ms is equal to or greater than 0 milliseconds (ms), but lessthan 100 ms, the image data quality is high. When the delay time ms isequal to or greater than 100 ms but less than 300 ms, the image dataquality is medium. When the delay time ms is equal to or greater than300 but less than 500 ms, the image data quality is low. When the delaytime ms is equal to or greater than 500 ms, the management system 50interrupts operation of transmitting data.

(Relay Terminal Selection Management Table)

The nonvolatile memory 5000 further stores a relay terminal selectionmanagement database (DB) 5008, which stores a relay terminal selectionmanagement table of FIG. 16. The relay terminal selection managementtable of FIG. 16 stores, for each of the terminal IDs of the terminals10 that are managed by the management system 50, the relay terminal IDof the relay terminal 30 that is used for relaying contents data.

(State Change Management Table)

The nonvolatile memory 5000 further stores a state change management DB5009, which stores a specific rule used for managing the communicationstate of the terminal 10, for example, in the form of a state changemanagement table of FIG. 17 and a state change management table of FIG.18. The state change management table of FIG. 17 stores change requestdata indicating a request for changing the communication state of theterminal 10, previous state data indicating the communication statebefore being changed by a state changer 53 c of the state manager 53,and changed state data indicating the communication state after beingchanged by the state changer 53 c of the state manager 53, inassociation with one another. The state change management table of FIG.18 stores change request data, terminal data for identifying the requestterminal 10A and the counterpart terminal 10B, previous state data ofthe request terminal 10A and the counterpart terminal 10B, and changedstate data of the request terminal 10A and the counterpart terminal 10B,in association with one another.

Examples of the change request data include, but not limited to, the“Invite” indicating that a request for starting communication with acounterpart terminal 10A is requested by a request terminal 10A, the“Accept” indicating that the request for starting communication with therequest terminal 10A is accepted by the counterpart terminal 10B, the“Call” indicating that a request for participating in a session that isalready established by participating terminals 10 is requested by aparticipation requesting terminal 10, the “Join” indicating that arequest for establishing a contents data session through the relayterminal 30 is requested by a request terminal 10A to start relaying ofcontents data, and the “Leave” indicating that a request fordisconnecting the contents data session with the relay terminal 30 isrequested by a request terminal 10A to end relaying of contents data. Inalterative to or in addition to the above-listed change request data,any desired type of change request data may be managed including, forexample, the “Reject” indicating that the request is rejected or the“Cancel” indicating that the request is canceled.

Further, in this example, the state change management table of FIG. 17stores previous state data and changed state data of the terminal 10,for the change request data “Call”, “Join”, and “Leave”, as these typesof change request data cause any one of the request terminal 10A and thecounterpart terminal 10B to change its communication state in the samemanner. The state change management table of FIG. 18 stores previousstate data and changed state data, respectively for the request terminal10A and the counterpart terminal 10B, for the change request data“Invite” and “Accept”, as these types of change request data cause therequest terminal 10A and the counterpart terminal 10B to change itscommunication state in a different manner.

When the change request data is detected, the management system 50determines whether to change the communication state of the requestterminal 10A or the counterpart terminal 10B using the state changemanagement table. When the communication state is to be changed, themanagement system 50 changes the communication state of the requestterminal 10A or the counterpart terminal 10B using the state changemanagement table.

For example, referring to the state change management table of FIG. 18,when the change request data “Invite” that requests the counterpartterminal 10B to start communication is received from the requestterminal 10A, the state manager 53 of the management system 50 changesthe communication state of the request terminal 10A from the previouscommunication state “None” to the changed communication state “Calling”.The state manager 53 further changes the communication state of thecounterpart terminal 10B from the previous communication state “None” tothe changed communication state “Ringing”.

Now, the functional structure of the management system 50 is explained.The data transmit/receive 51, which may be implemented by the networkI/F 209 (FIG. 3) according to an instruction received from the CPU 201,transmits or receives various data or information to or from anotherterminal, device, or system through the communication network 2.

Under control of the CPU 201 (FIG. 3), the terminal authenticator 52obtains a terminal ID and a password from the login request informationthat is received from the data transmit/receive 51. Using the terminalID and the password as a search key, the terminal authenticator 52searches the terminal authentication management DB 5002 (FIG. 11) todetermine whether the obtained set of terminal ID and password isregistered. Based on the search result, the terminal authenticator 52determines whether the user at the terminal 10 or the terminal 10 isallowed for access.

The state manager 53, which operates according to an instructionreceived from the CPU 201 (FIG. 3), includes a state set 53 a, a stateobtainer 53 b, and the state changer 53 c as illustrated in FIG. 6. Thestate set 53 a manages information stored in the terminal managementtable of FIG. 12 by changing from the operation state “OFFLINE” to theoperation state “ONLINE” when the operation state information indicatingthat the power is turned on is received from the terminal 10 as thepower switch 109 of the terminal 10 is turned on by the user. The stateset 53 a further manages information stored in the terminal managementtable of FIG. 12 by changing the operation state “ONLINE” to theoperation state “OFFLINE” when the operation state informationindicating that the power is turned off is received from the terminal 10as the power switch 109 of the terminal 10 is turned off by the user.

When the change request data is received at the data transmit/receive 51from the request terminal 10A or the counterpart terminal 10B, the stateobtainer 53 b obtains the state information of the request terminal 10Aor the counterpart terminal 10B from the terminal management table ofFIG. 12.

The state changer 53 c changes the state information of the requestterminal 10A or the counterpart terminal 10B that is managed by theterminal management table of FIG. 12, based on the change request datareceived at the data transmit/receive 51.

The terminal extractor 54, which operates according to an instructionreceived from the CPU 201 (FIG. 3), searches the candidate listmanagement DB 5004 (FIG. 13) using the terminal ID of the requestterminal 10A as a key to obtain a list of terminal IDs each beingassigned to a plurality of candidate terminals 10. Additionally, theterminal extractor 54 searches the candidate list management DB 5004(FIG. 13) using the terminal ID of the request terminal 10A as a key toobtain a terminal ID of another request terminal 10A that registers therequest terminal 10A as a candidate terminal for another requestterminal 10A.

The terminal state obtainer 55, which operates under control of the CPU201 (FIG. 3), searches the terminal management DB 5003 (FIG. 12) usingthe terminal ID of each candidate terminal 10 that is extracted by theterminal extractor 54 as a key to obtain the state information of eachcandidate terminal 10. The terminal state obtainer 55 obtains the stateinformation of each of the candidate terminal 10 that is previouslydetermined for the request terminal 10A that sends the login requestinformation. Further, the terminal state obtainer 55 searches theterminal management DB 5003 using the terminal ID extracted by theterminal extractor 54 as a key to obtain the state information of therequest terminal 10A that sends the login request information.

The relay terminal selector 56, which operates according to aninstruction received from the CPU 201 (FIG. 3), selects one relayterminal 30 from the plurality of relay terminals 30. As illustrated inFIG. 7, the relay terminal selector 56 includes a session ID generator56 a, a relay terminal extractor 56 b, and a selector 56 c.

The session ID generator 56 a of the relay terminal selector 56generates a session ID for identifying a session in which contents datais transmitted or received between or among the terminals 10. The relayterminal extractor 56 b extracts the terminal ID of the request terminal10A and the terminal ID of the counterpart terminal 10B respectivelyfrom the request information received from the request terminal 10A, andsearches the terminal management DB 5003 (FIG. 12) to obtain the relayterminal ID that is associated with the request terminal 10A and therelay terminal ID that is associated with the counterpart terminal 10B.The selector 56 c selects one or more relay terminals 30 having theonline state from the relay terminal management DB 5001 (FIG. 10) toobtain the relay terminal ID of the selected relay terminal 30.

Referring back to FIG. 5, the session manager 57, which operatesaccording to an instruction received from the CPU 201, stores thesession ID generated by the session ID generator 56 a, the terminal IDof the request terminal 10A, and the terminal ID of the counterpartterminal 10B, in a corresponding manner, in the session management DB5005 (FIG. 14) of the nonvolatile memory 5000. The session manager 57further stores the relay terminal ID of the relay terminal 30 that isfinally selected by the selector 56 c for each session ID, in thesession management DB 5005 (FIG. 14). For example, when participationrequest information is received, the session manager 57 searches thesession management table of FIG. 14 using the session ID included in theparticipation request information as a search key to obtain the terminalID of the request terminal 10A and the terminal ID of the counterpartterminal 10B that are stored with respect to the session ID.

The quality determiner 58, which operates according to an instructionreceived from the CPU 201 (FIG. 3), searches the quality management DB5007 (FIG. 15) using the delay time ms obtained for the selected relayterminal 30 to obtain the image data quality that is desirable forcommunication using the relay terminal 30.

The memory control 59, which is implemented by the HDD 205 (FIG. 3),stores various data in the nonvolatile memory 5000 or reads out variousdata from the nonvolatile memory 5000. The memory control 59 furtherstores various data in the volatile memory 5100 or reads out variousdata from the volatile memory 5100.

The delay time manager 60 searches the terminal management DB 5003 (FIG.12) using the IP address of the counterpart terminal 10B to obtain theterminal ID of the counterpart terminal 10B. The delay time manager 60further manages the session management table of FIG. 14 stored in thesession management DB 5005 so as to keep updated the value stored in the“delay time” field for the obtained terminal ID of the counterpartterminal 10B.

The connection determiner 62 determines whether the terminal 10 thatsends a request for participating in the contents data session “sed”that is established between or among the terminals 10 (“theparticipation requesting terminal 10”) should be allowed to participatein the contents data session. For example, the connection determiner 62obtains the terminal ID of the participation requesting terminal 10 thatsends a request for participating, when such request is received at thedata transmit/receive 51. The connection determiner 62 further causesthe terminal extractor 54 to extract the terminal IDs of the requestterminal 10A and the counterpart terminal 10B that are participating inthe contents data session “sed” (“the participating terminal 10”), andobtains a list of terminal IDs of candidate counterpart terminals 10that are registered for the participating terminal 10. The connectiondeterminer 62 determines whether the terminal ID of the participationrequesting terminal 10 that sends the request for participating isincluded in a list of terminal IDs of the candidate counterpartterminals 10 obtained for the participating terminal 10. When theterminal ID of the participation requesting terminal 10 that sends therequest for participating is included in the list, the connectiondeterminer 62 allows the participation requesting terminal 10 that sendsthe request to participate in the contents data session “sed” that isestablished between or among the participating terminals 10.

The calculator 63 calculates the value of a distance of the shortestpath between the participation requesting terminal 10 that sends therequest for participating in the session, and the participating terminal10 that is participating in the session, for each set of theparticipation requesting terminal 10 and the participating terminal 10.In calculation, each terminal 10 is treated as a node such that thedistance of the shortest path between the nodes, or the terminals,indicates closeness between the terminals that reflect closeness betweenthe users of the terminals. The calculator 63 obtains the largest valueof distance of the shortest path between the participation requestingterminal 10 and the participating terminal 10, from the calculateddistance values. In calculation, the calculator 63 defines a distancebetween the request terminal 10A and the candidate counterpart terminal10 to be a predetermined value. The candidate counterpart terminal 10 isany terminal that is stored in the candidate list management table (FIG.13) in association with the request terminal 10A. The distance of theshortest path between the participation requesting terminal 10 and theparticipating terminal 10 is expressed using the predetermined value.

<Operations of Transmission System>

Referring now to FIGS. 19 to 35, operation performed by the transmissionsystem 1 is explained according to an example embodiment of the presentinvention. FIG. 19 is a data sequence diagram illustrating operation ofmanaging state information indicating the operation state of the relayterminal 30, which is sent from the relay terminal 30 to the managementsystem 50, according to an example embodiment of the present invention.FIG. 20 is an illustration of transmitting or receiving image data,sound data, or management data, performed by the transmission system ofFIG. 1. FIGS. 21A and 21B are a data sequence diagram illustratingoperation of establishing communication among two or more terminals 10of the transmission system of FIG. 1. FIG. 22 is an example screen of acandidate list. FIG. 23 is a data sequence diagram illustratingoperation of managing a request for starting communication. FIG. 24 is aflowchart illustrating operation of changing a communication state of aterminal. FIG. 25 is a data sequence diagram illustrating operation ofmanaging a response to the request for starting communication. FIG. 26is a data sequence diagram illustrating operation of managing a requestfor starting relaying of contents data. FIG. 27 is a flowchartillustrating operation of changing a communication state of a terminal.FIG. 28 is a data sequence diagram illustrating transmitting orreceiving contents data such as image data and sound data, performed bytwo or more terminals. FIG. 29 is a data sequence diagram illustratingoperation of managing a request for participating in a contents datasession. FIG. 30 is a flowchart illustrating operation of determiningwhether to allow a participation requesting terminal to participate in acontents data session, using the candidate terminal list. FIG. 31 is anillustration of a distance of the shortest path between theparticipation requesting terminal and the participating terminal. FIG.32 is a flowchart illustrating operation of changing a communicationstate of a terminal. FIG. 33 is a data sequence diagram illustratingoperation of managing a request for leaving from the contents datasession. FIG. 34 is an illustration of a candidate list according toanother example embodiment of the present invention. FIG. 35 is anillustration for explaining the transition of a communication state of aterminal.

Referring now to FIG. 19, operation of managing state information of theterminal 30, which is sent from each terminal 30 to the transmissionmanagement system 50, performed by the transmission system 1 isexplained according to an example embodiment of the present invention.In this example, operation of FIG. 19 is performed by each one of therelay terminals 30 a, 30 b, 30 c, and 30 d that are provided in thelocal area of the transmission system 1. The relay terminal 30 e, whichis always turned on, does not perform operation of FIG. 19 as the relayterminal 30 e is assumed to have the operation state “ONLINE”.

At S1-1, S1-2, S1-3, and S1-4, the relay terminals 30 a, 30 b, 30 c, and30 d each periodically monitors the operation state of the relayterminal 30. This monitoring is performed by the state detector 32 (FIG.5) of the relay terminal 30.

At S2-1, S2-2, S2-3, and S2-4, the data transmit/receive 31 of the relayterminal 30 periodically transmits state information of the relayterminal 30 to the management system 50 through the communicationnetwork 2. With the state information of the relay terminal 30 that isperiodically received, the management system 50 is able to manage theoperation state of the relay terminal 30 in realtime. The stateinformation of the relay terminal 30 includes an operation state of therelay terminal 30 that is detected by the state detector 32 of the relayterminal 30, which is sent together with a relay terminal ID thatuniquely identifies each relay terminal 30. For the descriptivepurposes, in this example, it is assumed that the relay terminals 30 a,30 b, and 30 d each have the on-line state, and the relay terminal 30 chas the off-line state due to the failure in relay control program ofthe relay terminal 30 c.

At S3-1, S3-2, S3-3, and S3-4, the management system 50 receives thestate information from the relay terminal 30 at the datatransmit/receive 51, and stores the received state information of therelay terminal 30 in the nonvolatile memory 5000 through the memorycontrol 59. More specifically, the memory control 59 stores the stateinformation of each relay terminal 30 in association with the relayterminal ID of the corresponding relay terminal 30 in the relay terminalmanagement DB 5001 (FIG. 10). For example, referring to FIG. 10, themanagement system 50 stores the state information of the relay terminal30 indicating whether the relay terminal 30 is on-line, off-line, or introuble, etc., in association with the relay terminal ID of the relayterminal 30. Additionally, the management system 50 stores the date andtime information indicating the time when the management system 50receives the state information of the relay terminal 30 in associationwith the relay terminal ID of the relay terminal 30. When the managementsystem 50 does not receive any state information from the relay terminal30, the relay terminal management table of FIG. 10 has an empty valuefor the “operation state” field and the “date and time” field for thesubjected relay terminal 30. Alternatively, the value of the “operationstate” field and the value of the “date and time” field may reflect thestate information that is previously sent by the subjected relayterminal 30 to the management system 50 such that the relay terminalmanagement table of FIG. 10 retains such value.

Referring now to FIG. 20, transmission or reception of various data suchas contents data and management data among three terminals 10 in thetransmission system 1 is explained according to an example embodiment ofthe present invention. As illustrated in FIG. 20, in the transmissionsystem 1, the request terminal 10A, the counterpart terminal 10B1, andthe counterpart terminal 10B2, first establish a management data session“sei” with the management system 50 to start transmission and receptionof various types of management data through the management system 50.Further, in this example, the request terminal 10A, the counterpartterminal 10B1, and the counterpart terminal 10B2 establish four contentsdata sessions “sed” to transmit or receive contents data through therelay terminal 30. The four contents data sessions, which may bereferred to as image and/or sound data sessions, include a session “HL”to transmit high-level resolution image data HL, a session “ML” totransmit medium-level resolution image data ML, a session “LL” totransmit low-level resolution image data LL, and a session “V” totransmit sound data V such as voice data.

Referring now to FIG. 21A and 21B, operation of transmitting andreceiving various management data before starting videoconference by therequest terminal 10 aa is explained, according to an example embodimentof the present invention. In FIGS. 21A and 21B, management data istransmitted or received through the management data session “sei”.

For example, at S21, when the user selects “ON” using the power switch109, the operation input 12 receives a user instruction for turning thepower on, and causes the terminal 10 aa to turn on the power. At S22, asthe power of the request terminal 10 aa is turned on, the login request13 of the request terminal 10 aa automatically causes the datatransmit/receive 11 to send the login request information that requeststhe login process to the management system 50 through the communicationnetwork 2. The login request information includes a terminal ID thatidentifies the request terminal 10 aa, and a password assigned to therequest terminal 10 aa. The terminal ID and the password may be obtainedby the memory control 19 from the nonvolatile memory 1000, and sent tothe data transmit/receive 11. At the time of sending the login requestinformation from the request terminal 10 aa to the management system 50,the request terminal 10 aa sends an IP address of the request terminal10 aa such that the management system 50 knows the IP address of therequest terminal 10 aa.

At S23, the terminal authenticator 52 of the management system 50searches the terminal authentication management DB 5002 (FIG. 11) storedin the nonvolatile memory 5000 using the terminal ID and the password ofthe login request information received through the data transmit/receive51. When it is determined that the terminal ID and the password of thelogin request information is stored in the terminal authenticationmanagement DB 5002, the terminal authenticator 52 determines that theterminal 10 aa is authenticated.

At S24-1, when the terminal authenticator 52 authenticates that thelogin request information is received from the authenticated terminal10, the state manager 53 of the management system 50 stores the date andtime at which the login request information is received, and the IPaddress of the terminal 10 aa, with respect to the terminal ID “01aa” ofthe terminal 10 aa in the terminal management DB 5003 (FIG. 12).

At S24-2, the state set 53 a of the state manager 53 stores theoperation state “ONLINE” and the communication state “None” of theterminal 10 aa in the terminal management DB 5003 (FIG. 12) inassociation with other information of the terminal 10 aa for the recordthat is specified by the terminal ID and the terminal name of theterminal 10 aa. Using the terminal management table of FIG. 12, whichstores the operation state of “ONLINE”, the communication state of“None”, the date and time of “13:40, Nov. 10, 2009”, and the terminal IPaddress of “1.2.1.3” in association with the terminal ID “01aa”, variousinformation regarding the terminal 10 aa can be managed.

At S25, the data transmit/receive 51 of the management system 50 sendsthe authentication result obtained by the terminal authenticator 52 tothe request terminal 10 aa that has sent the login request informationthrough the communication network 2. As described above, in thisexample, it is assumed that the terminal authenticator 52 determinesthat the terminal 10 aa is an authenticated terminal.

When the request terminal 10 aa receives the authentication resultindicating that the terminal 10 aa is authenticated, at S26, the datatransmit/receive 11 sends the candidate list request information thatrequests for a candidate list to the management system 50 through thecommunication network 2. The data transmit/receive 51 of the managementsystem 50 receives the candidate list request information.

At S27, the terminal extractor 54 of the management system 50 searchesthe candidate list management DB 5004 (FIG. 13) using the terminal ID“01aa” of the request terminal 10 aa that has sent the login requestinformation and the candidate list request information to extract aterminal ID and a terminal name for each of candidate terminals 10 thatare previously registered for the request terminal 10 aa. Morespecifically, referring to FIGS. 12 and 13, the extractor 54 extractsterminal IDs including “01ab”, “01ba”, and “01db”. of terminals 10 ab,10 ba, and 10 db, and terminal names including “Japan Tokyo Office ABTerminal”, “Japan Osaka Office BA Terminal”, and “U.S. Washington, D.C.Office, DB Terminal” to obtain information regarding candidate terminalsfor the request terminal 10 aa.

At S28, the data transmit/receive 51 of the management system 50 readsout the candidate list frame data such as the candidate list frame1100-1 of FIG. 22 from the nonvolatile memory 5000. At S29, the datatransmit/receive 51 of the management system 50 sends the candidate listinformation including the candidate list frame data obtained at S28, andthe terminal ID and the terminal name of the candidate terminal obtainedat S27, to the request terminal 10 aa. At S30, the request terminal 10aa receives the candidate list information at the data transmit/receive11, and stores the candidate list information in the volatile memory1100 through the memory control 19.

As described above, in this example, in alternative to managing thecandidate list information by each terminal 10, the management system 50centrally manages the candidate list information for all terminals 10.As the candidate list information is centrally managed at the managementsystem 50, any change in the transmission system 1 can be easilyreflected in a timely manner without requiring the user at the terminal10 to change any settings. For example, the management system 50 is ableto update the candidate list information to reflect when a new terminal10 is added to the transmission system 1, when a new type of terminal 10is introduced to the transmission system 1, or when the design for thecandidate list frame is changed.

At S31, the terminal state obtainer 55 of the management system 50searches the terminal management DB 5003 (FIG. 12) using the terminal ID(“01ab”, “01ba”, and “01db”) of the candidate terminal extracted by theterminal extractor 54 as a key to obtain the state information, i.e.,the operation state and the communication state, for each one of thecandidate terminals 10 ab, 10 ba, and 10 db.

At S32, the data transmit/receive 51 of the management system 50 sendsthe state information for each one of the candidate terminals 10 ab, 10ba, and 10 db to the request terminal 10 aa through the communicationnetwork 2. More specifically, the data transmit/receive 51 of themanagement system 50 sends the state information of the candidateterminal 10 ab together with the terminal ID “01ab” of the candidateterminal 10 ab as the terminal state information. In this example, theterminal ID “01ab” of the candidate terminal 10 ab has been extracted bythe terminal extractor 54. Using the terminal ID “01ab” as a search key,the operation state of the candidate terminal 10 ab, which is the“OFFLINE” state, is obtained from the terminal management table (FIG.12). Similarly, the data transmit/receive 51 of the management system 50sends the terminal state information of the candidate terminal 10 ba,which includes the terminal ID “01ba” used as a search key at S27, andthe operation state “ONLINE” and the communication state “Calling” ofthe candidate terminal 10 ba. This process of sending the terminal stateinformation is repeated until the terminal state information is sent forall of the candidate terminals 10.

At S33, the memory control 19 of the request terminal 10 aa stores thestate information that is received from the management system 50 in thevolatile memory 1100. As described above, with the state information ofeach candidate terminal, the request terminal 10 aa is able to know thecurrent state information, such as the current operation state and thecurrent communication state, of the candidate terminal 10 that ispreviously registered for the request terminal 10 aa.

At S34, the candidate list generator 20 of the request terminal 10 aagenerates a candidate list that reflects the operation state and thecommunication state of the candidate terminal 10, based on the candidatelist information and the state information of the candidate terminal 10that are stored in the volatile memory 1100. The display control 16 ofthe request terminal 10 aa causes the display 120 to display a candidatelist at a predetermined time.

More specifically, as illustrated in FIG. 22, the request terminal 10 aacauses the display 120 aa to display a candidate list that displays thecandidate terminal name 1100-2 and the icon 1100-3 that reflects theoperation state and the communication state of the candidate terminal10, within the candidate list frame 1100-1.

Referring back to FIG. 21B, at S35, the terminal extractor 54 of themanagement system 50 searches the candidate list management DB 5004(FIG. 13) using the terminal ID “01aa” of the request terminal 10 aathat has sent the login request information to extract the terminal IDof one or more terminals 10 each of which registers the request terminal10 aa as one of its candidate terminals 10. The candidate listmanagement table of FIG. 13 indicates that the terminal ID of theterminal 10 having the request terminal 10 aa as a candidate terminal is“01ab”, “01ba”, and “01db”.

At S36 of FIG. 21B, the terminal state manager 55 of the managementsystem 50 searches the terminal management DB 5003 (FIG. 12) using theterminal ID “01aa” of the request terminal that has sent the loginrequest information as a search key to obtain the operation state andthe communication state of the request terminal 10 aa. In this example,the operation state “ONLINE” and the communication state “None” areextracted for the request terminal 10 aa.

At S37-1 and S37-2, the data transmit/receive 51 of the managementsystem 50 sends the terminal ID “01aa” and the state information of therequest terminal 10 aa, which are respectively obtained at S36, to theterminals 10 ab, 10 ba, and 10 db each having the request terminal 10 aaas a candidate terminal that is obtained at S35. In this example, themanagement system 50 sends the terminal state information of the requestterminal 10 aa to only the terminals 10 ba and 10 db each having the“ONLINE” state as shown in FIG. 12. More specifically, in this example,the data transmit/receive 51 refers to the terminal management table ofFIG. 12 to obtain the IP address of each of the terminals 10 ba and 10db. Using the obtained IP addresses, the management system 50 is able tosend the terminal state information of the request terminal 10 aa to theterminals 10 ba and 10 db each of which lists the request terminal 10 aaas a candidate terminal and having the online state.

The above-described operation of S22 to S38 is performed by any desiredterminal 10 as the power of the terminal 10 is turned on through thepower switch 109 (FIG. 2).

Referring now to FIGS. 23 and 24, operation of managing a request forstarting communication with a counterpart terminal 10B that is generatedby a request terminal 10A, performed by the transmission system 1, isexplained according to an example embodiment of the present invention.In operation, various data is transmitted or received through themanagement data session “sei” before starting communication, asmanagement data. Further, it is assumed that the request terminal 10A isable to start communication with any number of terminals having theoperation state “ONLINE” and the communication state “None”, which areobtainable from the candidate list being displayed through the display120. In this example illustrated in FIG. 23, the request terminal 10 aarequests the candidate counterpart terminal 10 db to start communicationwith the request terminal 10 aa.

At S41, as the user at the request terminal 10 aa presses the operationbutton 108 (FIG. 2) to select the counterpart terminal 10 db, theoperation input 12 (FIG. 5) receives a user instruction for startingcommunication with the counterpart terminal 10 db.

At S42, the data transmit/receive 11 of the request terminal 10 aa sendscommunication start request information to the management system 50. Thecommunication start request information includes the terminal ID “01aa”of the request terminal 10 aa, the terminal ID “01db” of the counterpartterminal 10 db, and the change request data “Invite” that requestscommunication to be started. With this information, the datatransmit/receive 51 of the management system 50 receives the IP address“1.2.1.3” of the request terminal 10 aa.

At S43, the state manager 53 of the management system 50 specifiesrecords in the terminal management table (FIG. 12) stored in theterminal management DB 5003, which respectively correspond to theterminal ID “01aa” of the request terminal 10 aa and the terminal ID“01db” of the counterpart terminal 10 db to manage the specifiedrecords.

Referring now to FIG. 24, operation performed at S43 of FIG. 23 isexplained according to an example embodiment of the present invention.In this example, the state manager 53 changes the communication statesof the request terminal 10A and the counterpart terminal 10B accordingto a communication state change rule that is previously defined.

For example, referring to FIG. 35, assuming that the currentcommunication state of the terminal 10 is “Ringing” or “Calling”, whenthe change request data “Accept” is received, the state manager 35changes the communication state of the terminal 10 from the state“Ringing” or “Calling” to the state “Accepted”. When the currentcommunication state of the terminal 10 is “Accepted”, the communicationstate of the terminal 10 remains the same even when the change requestdata “Accept” is received. In the following examples, the state manager53 manages the communication state of the terminal 10, using the statechange management table of FIGS. 17 and 18. However, the state manager53 may manage the communications state of the terminal 10 in variousother ways, as long as the state manager 53 changes the communicationstate according to a specific rule such as the communication statechange rule of FIG. 35.

Referring to FIG. 24, at S43-1, the state obtainer 53 b of the statemanager 53 (FIG. 6) obtains a current communication state of each of therequest terminal 10 aa and the counterpart terminal 10 db, from theterminal management table (FIG. 12) stored in the terminal management DB5003. The change request data determiner 61 determines whether thechange request data “Invite”, which is received at the datatransmit/receive 51, is specific change request data that is previouslydefined. In this example, the specific change request data is defined tobe either the “Invite” or the “Accept”, which is managed by the statechange management table of FIG. 18. Since the change request data“Invite” is the specific change request data, the change request datadeterminer 61 determines that the state change management table of FIG.18 is used. Based on this determination, the state obtainer 53 b obtainsthe current communication state of the counterpart terminal 10 db andthe current communication state of the request terminal 10 aa. Morespecifically, the state obtainer 53 b searches the terminal managementtable (FIG. 12) stored in the terminal management DB 5003 using theterminal ID “01aa” of the request terminal 10 aa as a search key toobtain the communication state “None” of the request terminal 10 aa thathas sent the request. In a substantially similar manner, the stateobtainer 53 b obtains the communication state “None” of the counterpartterminal 10 db using the terminal ID “01db” of the counterpart terminal10 db.

At S43-2, the state changer 53 c of the state manager 53 obtainsprevious state data of the request terminal 10 aa and previous statedata of the counterpart terminal 10 db that correspond to the changerequest data “Invite”. For example, referring to FIG. 18, the statechanger 53 c searches the state change management table of FIG. 18 usingthe change request data “Invite” and the terminal data “REQUEST” as asearch key to obtain the previous state data “None” of the requestterminal 10 aa. Similarly, the state changer 53 c searches the statechange management table of FIG. 18 using the change request data“Invite” and the terminal data “COUNTERPART” as a search key to obtainthe previous state data “None” of the counterpart terminal 10 db.

At S43-3, the state changer 53 c compares the communication state of theterminal 10 that is obtained by the state obtainer 53 b at S43-1, withthe previous state data of the terminal 10 that is obtained by the statechanger 53 c at S43-2, to generate a comparison result. Morespecifically, the state changer 53 c compares the communication state“None” of the request terminal 10 aa with the previous state data “None”of the request terminal 10 aa to generate a comparison result. The statechanger 53 c further compares the communication state “None” of thecounterpart terminal 10 db with the previous state data “None” of thecounterpart terminal 10 db to generate a comparison result.

When the comparison result generated at S43-3 indicates that thecommunication state and the previous state data match for the requestterminal 10 aa and the counterpart terminal 10 db (“YES” at S43-3), theoperation proceeds to S43-4. At S43-4, the state changer 53 c obtainsthe changed state data of the request terminal 10 aa and the changedstate data of the counterpart terminal 10 db that correspond to thechange request data “Invite”. More specifically, the state changer 53 csearches the state change management table (FIG. 18) using the changerequest data “Invite” and the terminal data “REQUEST” as a search key toobtain the changed state data “Calling” of the request terminal 10 aa.Similarly, the state changer 53 c searches the state change managementtable (FIG. 18) using the change request data “Invite” and the terminaldata “COUNTERPART” as a search key to obtain the changed state data“Ringing” of the counterpart terminal 10 db.

At S43-5, the state changer 53 c searches the terminal management table(FIG. 12) for the records corresponding to the terminal ID “01aa” of therequest terminal 10 aa and the terminal ID “01db” of the counterpartterminal 10 db to change the communication state fields for the requestterminal 10 aa and the counterpart terminal 10 db. More specifically,the state changer 53 c changes the communication state field in therecord that corresponds to the terminal ID “01aa”, which is stored inthe terminal management table, to the communication state “Calling”based on the changed state data of the request terminal 10 aa.Similarly, the state changer 53 c changes the communication state fieldin the record that corresponds to the terminal ID “01db”, which isstored in the terminal management table, to the communication state“Ringing” based on the changed state data of the counterpart terminal 10db.

At S43-3, when the comparison result generated by the state changer 53 cindicates that the communication state is not the same as the previousstate data either for the request terminal 10 aa or the counterpartterminal 10 db (“NO” at S43-3″), the state changer 53 c does not changethe communication state fields stored in the terminal management table(FIG. 12) for the record of the terminal ID “01aa” and the record of theterminal ID “01db”. When the comparison result indicates that thecommunication state is not the same as the previous state data for therequest terminal 10 aa or the counterpart terminal 10 db, the statechanger 53 c determines that the request terminal 10 aa or thecounterpart terminal 10 db is not in the communication state in whichcommunication can be started. In such case, the operation proceeds toS43-6 to cause the data transmit/receive 51 to send an error message tothe request terminal 10 aa, and the operation ends.

More specifically, when the error message is sent from the managementsystem 50, S44 to S48 of FIG. 23 are not performed. Instead, the requestterminal 10 aa, which receives the error message, causes the display 120aa to display an error message to the user.

In this example, it is assumed that the communication states of therequest terminal 10 aa and the counterpart terminal 10 db arerespectively changed at S43-5. In such case, referring back to FIGS. 23,S44 to S48 are performed as follows.

At S44, the session ID generator 56 a generates a session ID “sel” foridentifying the contents data session “sed” through which the contentsdata will be exchanged between the request terminal 10 aa and thecounterpart terminal 10 db. The session manager 57 stores the session ID“sel” in the volatile memory 5100.

At S45, the relay terminal selector 56 of the management system 50selects one of the relay terminals 30, which will be used to relaycontents data through the contents data session to be establishedbetween the request terminal 10 aa and the counterpart terminal 10 db.More specifically, the relay terminal extractor 56 b of the relayterminal selector 56 searches the relay terminal selection managementtable (FIG. 16) using the terminal ID “01aa” of the request terminal 10aa and the terminal ID “01db” of the counterpart terminal 10 db, whichare respectively extracted from the communication start requestinformation transmitted from the request terminal 10 aa, to obtain therelay terminal IDs “111a” and “111d” that correspond to the terminals 10aa and 10 db.

When the relay terminal IDs that are extracted for the request terminal10 aa and the counterpart terminal 10 db match, the selector 56 c refersto the operation state of the relay terminal 30 having the extractedrelay terminal ID, which is stored in the relay terminal managementtable (FIG. 10). When the operation state of the relay terminal 30 is inthe online state, the selector 56 c selects the relay terminal that isextracted as a relay terminal that relays contents data between therequest terminal 10 aa and the counterpart terminal 10 db.

When the relay terminal IDs that are extracted for the request terminal10 aa and the counterpart terminal 10 db do not match, or when theoperation state of the relay terminal 30 is in the offline state, theselector 56 c selects the relay terminal 30 e having the terminal ID“111e” as a relay terminal that relays contents data between the requestterminal 10A and the counterpart terminal 10B. In this example, sincethe extracted terminal IDs differ for the request terminal 10 aa and thecounterpart terminal 10 db, the selector 56 c selects the relay terminal30 e.

When selection of the relay terminal 30 is completed, at S46, thesession manager 57 manages a record that corresponds to the session ID“sel”, which is stored in the session management table (FIG. 14) storedin the session management DB 5005 in the nonvolatile memory 5000, forexample, by inputting the relay terminal ID “111e” of the selectedterminal in the “RELAY TERMINAL ID” field, the terminal ID “01aa” of therequest terminal 10 aa in the “REQUEST TERMINAL ID” field, and theterminal ID “01db” of the counterpart terminal 10 db in the “COUNTERPARTTERMINAL ID” field.

At S47, the data transmit/receive 51 (FIG. 5) sends the session ID thatis generated by the session ID generator 56 a, and the relay terminalconnection information to be used for connecting to the relay terminal30 e that is selected by the selector 56 c, to the request terminal 10aa through the communication network 2. In this example, the relayterminal connection information includes the IP address “1.1.1.3”,authentication information, and a port number of the relay terminal 30e. The request terminal 10 aa is able to obtain the relay terminalconnection information to be used for connecting to the relay terminal30 e that relays contents data to carry out a session with the sessionID “sel”.

At S48, the data transmit/receive 51 sends the communication startrequest information including the terminal ID “01aa” of the requestterminal 10 aa, the change request data “Invite” that requests thecounterpart terminal 10 db to start communication, and the session ID“sel”, the relay terminal connection information to be used forconnecting to the relay terminal 30 e, and the IP address of themanagement system 50. With the communication start request information,the data transmit/receive 51 of the counterpart terminal 10 db obtainsthe relay terminal connection information to be used for connecting therelay terminal 30 e that relays contents data, and the IP address“1.1.1.2” of the management system 50.

Referring now to FIGS. 24 and 25, operation of managing a response tothe request for starting communication, performed by the transmissionsystem 1, is explained according to an example embodiment of the presentinvention. The operation of FIG. 25 is performed after operation of FIG.23.

At S49, the counterpart terminal 10 db that receives communication startrequest information from the request terminal 10 aa via the managementsystem 50 at S48 of FIG. 23, receives a user instruction for acceptingthe request for starting communication. For example, when the operationbutton 108 (FIG. 2) is pressed by the user, the counterpart terminal 10db determines that the communication start request for startingcommunication with the request terminal 10 aa is accepted.

At S50, the data transmit/receive 11 of the counterpart terminal 10 dbsends communication start respond information to the management system50, which includes the terminal ID “01db” of the counterpart terminal 10db, the terminal ID “01aa” of the request terminal 10 aa, the changerequest data “Accept” indicating that the communication start request isaccepted, and the session ID “sel”.

When the data transmit/receive 51 of the management system 50 receivesthe communication start respond information, at S51, the state manager53 searches the terminal management table (FIG. 12) using the terminalID “01aa” of the request terminal 10 aa and the terminal ID “01db” ofthe counterpart terminal 10 db to obtain records for the requestterminal 10 aa and the counterpart terminal 10 db. The state manager 53further changes the communication state filed for each of the obtainedrecords.

Referring now to FIG. 24, operation of managing state information of therequest terminal 10 aa and the counterpart terminal 10 db, performed atS51, is explained. The following steps S51-1 to S51-6 are performed in asubstantially similar manner as described above referring to S43-1 toS43-6.

At S51-1, when the data transmit/receive 51 of the management system 50receives the communication start respond information, the state obtainer53 b of the state manager 53 (FIG. 6) refers to the terminal managementtable (FIG. 12) to obtain the communication state of the terminal in asubstantially similar manner as described above referring to S43-1. Thechange request data determiner 61 determines that the change requestdata “Accept” that is received at the data transmit/receive 51 is thespecific change request data that is previously determined. Based onthis determination, the state obtainer 53 b obtains the communicationstate “Ringing” of the counterpart terminal 10 db, and the communicationstate “Calling” of the request terminal 10 aa.

AT S51-2, the state changer 53 c of the state manager 53 searches thestate change management table of FIG. 18 using the change request data“Accept” and the terminal data “REQUEST” as a search key to obtain theprevious state data “Calling” and “Accepted” of the request terminal 10aa. Similarly, the state changer 53 c searches the state changemanagement table of FIG. 18 using the change request data “Accept” andthe terminal data “COUNTERPART” as a search key to obtain the previousstate data “Ringing” of the counterpart terminal 10 db.

At S51-3, the state changer 53 c compares the communication state of theterminal 10 that is obtained by the state obtainer 53 b at S51-1, withthe previous state data of the terminal 10 that is obtained by the statechanger 53 c at S51-2, to generate a comparison result. Morespecifically, the state changer 53 c compares the communication state“Calling” of the request terminal 10 aa with the previous state data“Calling” or “Accepted” of the request terminal 10 aa to generate acomparison result. The state changer 53 c further compares thecommunication state “Ringing” of the counterpart terminal 10 db with theprevious state data “Ringing” of the counterpart terminal 10 db togenerate a comparison result.

When the comparison result generated at S51-3 indicates that thecommunication state and the previous state data match for the requestterminal 10 aa and the counterpart terminal 10 db (“YES” at S51-3), theoperation proceeds to S51-4. At S51-4, the state changer 53 c obtainsthe changed state data of the request terminal 10 aa and the changedstate data of the counterpart terminal 10 db that correspond to thechange request data “Accept”. More specifically, the state changer 53 csearches the state change management table (FIG. 18) using the changerequest data “Accept” and the terminal data “REQUEST” as a search key toobtain the changed state data “Accepted” of the request terminal 10 aa.Similarly, the state changer 53 c searches the state change managementtable (FIG. 18) using the change request data “Accept” and the terminaldata “COUNTERPART” as a search key to obtain the changed state data“Accepted” of the counterpart terminal 10 db.

AT S51-5, the state changer 53 c searches the terminal management table(FIG. 12) for the records corresponding to the terminal ID “01aa” of therequest terminal 10 aa and the terminal ID “01db” of the counterpartterminal 10 db to change the communication state fields for the requestterminal 10 aa and the counterpart terminal 10 db. More specifically,the state changer 53 c changes the communication state field in therecord that corresponds to the terminal ID “01aa”, which is stored inthe terminal management table, to the communication state “Accepted”based on the changed state data of the request terminal 10 aa.Similarly, the state changer 53 c changes the communication state fieldin the record that corresponds to the terminal ID “01db”, which isstored in the terminal management table, to the communication state“Accepted” based on the changed state data of the counterpart terminal10 db.

At S51-3, when the comparison result generated by the state changer 53 cindicates that the communication state is not the same as the previousstate data either for the request terminal 10 aa or the counterpartterminal 10 db (“NO” at S51-3″), the state changer 53 c does not changethe communication state fields stored in the terminal management table(FIG. 12) for the record of the terminal ID “01aa” and the record of theterminal ID “01db”. In such case, the operation proceeds to S51-6 tocause the data transmit/receive 51 to send an error message to thecounterpart terminal 10 db, and the operation ends.

More specifically, when the error message is sent from the managementsystem 50, S52 to S54 of FIG. 25 are not performed. Instead, thecounterpart terminal 10 db, which receives the error message, causes thedisplay 120 db to display an error message to the user.

In this example, it is assumed that the communication states of therequest terminal 10 aa and the counterpart terminal 10 db arerespectively changed at S51-5. In such case, referring back to FIGS. 25,S52 to S54 are performed as follows.

At S52, the data transmit/receive 51 of the management system 50transmits the communication start respond information to the requestterminal 10 aa through the communication network 2. The communicationstart respond information includes the terminal ID “01db” of thecounterpart terminal 10 db, the change request data “Accept” indicatingthat the request for starting communication with the counterpartterminal 10 db is accepted, and the session ID “sel”.

When the communication start respond information is received, at S53,the data transmit/receive 11 of the request terminal 10 aa transmits thesession ID “sel” and the relay terminal connection information obtainedat S47 (FIG. 23) to the relay terminal 30 e to establish connection withthe relay terminal 30 e. At S54, the data transmit/receive 11 of thecounterpart terminal 10 db transmits the session ID “sel” and the relayterminal connection information obtained at S48 (FIG. 23) to the relayterminal 30 e to establish connection with the relay terminal 30 e.

Referring now to FIG. 26, operation of managing a request for startingrelay of contents data between the request terminal 10 aa and thecounterpart terminal 10 db through the relay terminal 30 e, performed bythe transmission system 1, is explained according to an exampleembodiment of the present invention. In this example, various data istransmitted or received through the management data session “sei”. Theoperation of FIG. 26 is performed at a predetermined time after therequest terminal 10 aa and the counterpart terminal 10 db each establishconnection with the relay terminal 30 e at S53 and S54 of FIG. 25.

At S71-1, the data transmit/receive 11 of the request terminal 10 aasends relay request information to the management system 50, whichincludes the terminal ID “01aa” of the request terminal 10 aa, thesession ID “sel”, and the change request data “Join” that requests relayof contents data.

When the data transmit/receive 51 of the management system 50 receivesthe relay request information, at S72-1, the state manager 53 searchesthe terminal management table of FIG. 12 using the terminal ID “01aa” ofthe request terminal 10 aa obtained from the relay request informationto specify a record that corresponds to the terminal ID “01aa”, andchanges a filed of the communication state of the specified record.

Referring now to FIG. 27, operation of managing state informationperformed at S72-1 is explained. At S72-1-1, the state obtainer 53 b ofthe state manager 53 (FIG. 6) obtains the communication state of theterminal 10 that is managed by the terminal management DB 5003 (FIG.12). The change request data determiner 61 determines that the changerequest data “Join” received at the data transmit/receive 51 is not thespecific change request data previously determined. More specifically,it is determined that the change request data “Join” differs from anyone of the “Invite” and the “Accept”. Accordingly, the change requestdata determiner 61 determines to use the state change management tableof FIG. 17. Based on this determination, the state obtainer 53 b obtainsonly the communication state of the request terminal 10 aa. Morespecifically, the state obtainer 53 b searches the terminal managementtable (FIG. 12) using the terminal ID “01aa” of the request terminal 10aa as a search key to obtain the communication state “Accepted” of therequest terminal 10 aa that sends the relay start request information.

At S72-1-2, the state changer 53 c of the state manager 53 obtains theprevious state data that corresponds to the change request data “Join”.More specifically, the state changer 53 c searches the state changemanagement table of FIG. 17 using the change request data “Join” toobtain the previous change data “Accepted”.

At S72-1-3, the state changer 53 c determines whether the communicationstate obtained by the state obtainer 53 b at S72-1-1, and the previousstate data obtained by the state changer 53 c at S72-1-2 match. Morespecifically, in this example, the state changer 53 c compares thecommunication state “Accepted” of the request terminal 10 aa obtained bythe state obtainer 53 b with the previous state data “Accepted” obtainedby the state changer 53 c to generate a comparison result.

When the comparison result indicates that the communication state andthe previous state data match (“YES” at S72-1-3), the operation proceedsto S72-1-4. At S72-1-4, the state changer 53 c obtains the changed statedata that corresponds to the change request data “Join”. In such case,the state changer 53 c searches the state change management table (FIG.17) using the change request data “Join” as a search key to obtain thechanged state data “Busy”.

At S72-1-5, the state changer 53 c refers to the terminal managementtable (FIG. 12) to specify a record for the terminal ID “01aa” of therequest terminal 10 aa, and changes the communication state field of thespecified record. More specifically, in this example, the state changer53 c changes the communication state field of the terminal ID“01aa” ofthe request terminal 10 aa to the communication state “Busy” based onthe obtained changed state data.

When the comparison result indicates that the communication state andthe previous state data for the request terminal 10 aa do not match(“NO” at S72-1-3), the state changer 53 c does not change thecommunication state field of the record that corresponds to the terminalID “01aa”, which is stored in the terminal management table (FIG. 12).In such case, the operation proceeds to S72-1-6 to cause the datatransmit/receive 51 to transmit an error message to the request terminal10 aa, and the operation ends.

More specifically, when the error message is sent from the managementsystem 50, S73-1 to S76-1 are not performed. Instead, the requestterminal 10 aa, which receives the error message, causes the display 120aa to display an error message to the user.

In this example, it is assumed that the communication state of therequest terminal 10 aa is changed at S72-1-5. In such case, referringback to FIGS. 26, S73-1 to S76-1 are performed as follows.

At S73-1, the management system 50 sends the relay start requestinformation to the relay terminal 30 e, which includes the terminal ID“01aa” of the request terminal 10 aa, and the session ID “sel”. When therelay start request information is received, at S74-1, the relayterminal 30 e transmits relay start respond information including amessage indicating a permission to start relay “OK” to the managementsystem 50. In addition to the “OK”, the relay start respond informationincludes the terminal ID of the request terminal 10 aa and the sessionID.

When the relay start respond information is received, at S75-1, the datatransmit/receive 51 of the management system 50 sends the relay startrespond information to the request terminal 10 aa. The relay startrespond information includes the terminal ID of the request terminal 10aa, the change request data “Join”, the session ID, and the message“OK”. At S76-1, the contents data session “sed” is established betweenthe request terminal 10 aa and the relay terminal 30 e.

The management system 50 performs the above-described operation for eachone of the terminals 10 that will be starting videoconference. Morespecifically, the management system 50 performs S71-2 to S76-2 toestablish the contents data session between the relay terminal 30 e andthe counterpart terminal 10 db.

At a predetermined after the counterpart terminal 10 db establishesconnection with the relay terminal 30 e at S54 (FIG. 25), at S71-2, thedata transmit/receive 11 of the counterpart terminal 10 db transmitsrelay request information to the management system 50, which includesthe terminal ID “01db” of the counterpart terminal 10 db, the session ID“sel”, and the change request data “Join” that requests relay ofcontents data.

The management system 50 and the relay terminal 30 e perform S72-2,S73-2, S74-2, and S75-2, in a substantially similar manner as describedabove referring to S72-1, S73-1, S74-I, and S75-1 to establish thecontents data session “sed” between the relay terminal 30 e and thecounterpart terminal 10 db. In managing the state information of thecounterpart terminal 10 db, the management system 50 obtains thecommunication state of the counterpart terminal 10 db, and changes thecommunication state of the counterpart terminal 10 db in a substantiallysimilar manner as described above referring to FIG. 27.

When the contents data session between the request terminal 10 aa andthe relay terminal 30 e, and the contents data session between thecounterpart terminal 10 db and the relay terminal 30 e are eachestablished, the relay terminal 30 e relays contents data such as imagedata and/or sound data between the request terminal 10 aa and thecounterpart terminal 10 db. Accordingly, videoconference is carried outbetween the terminals 10 aa and 10 db. The image data may include anyone of the low-level resolution image data, the medium-level resolutionimage data, and the high-level resolution image data.

Referring now to FIGS. 5 and 28, transmission or reception of contentsdata between the request terminal 10 aa and the counterpart terminal 10db to carry out videoconference, performed by the transmission system ofFIG. 1, is explained according to an example embodiment of the presentinvention. In this example, the contents data such as the image data andthe sound data flows in a direction from the request terminal 10 aa tothe counterpart terminal 10 db, or in another direction from thecounterpart terminal 10 db to the request terminal 10 aa. Sinceoperation such as transmission and reception of the contents data ordetection of delay time is the same for both of the directions, thefollowing example focuses on communication in which data flows from therequest terminal 10 aa to the counterpart terminal 10 db.

Referring to FIG. 28, at S81, the data transmit/receive 11 of therequest terminal 10 aa sends the contents data to the relay terminal 30e through the communication network 2 in the contents data session“sed”. The contents data includes image data such as image data of anobject captured by the imaging unit 14 and sound data that is inputthrough the sound input 15 a. In this example, as illustrated in FIG.20, it is assumed that the high-quality image data based on thelow-level resolution image data, the medium-level resolution image data,and the high-level resolution image data, and the sound data, aretransmitted. Accordingly, the data transmit/receive 31 of the relayterminal 30 e receives the image data of three different resolutionlevels, and the sound data.

At S82, the data quality checker 33 searches the data quality managementDB 3001 (FIG. 8) using the IP address “1.3.2.4” of the counterpartterminal 10 db as a key to obtain the quality of the image data to betransmitted to the relay terminal 30 e. In this example, the quality ofimage data to be transmitted to the relay terminal 30 e is thehigh-quality image data. Since the image data that is received at thedata transmit/receive 31 has the quality that is the same as the qualityof the image data obtained from the data quality management DB 3001, atS83, the relay terminal 30 e sends the high-quality image data and thesound data to the counterpart terminal 10 db in the contents datasession “sed”, without applying further image processing.

The counterpart terminal 10 db receives the high quality image data thatis generated based on the low-level resolution image data, medium-levelresolution image data, and high-level resolution image data, and thesound data, at the data transmit/receive 11. The display control 16combines the image data of three different resolution levels into thehigh quality image data for display onto the display 120. Further, thesound output 15 b outputs the sound such as voices, based on the sounddata.

At S84, the delay detector 18 of the counterpart terminal 10 dbperiodically detects a delay time indicating the time at which the imagedata is received at the data transmit/receive 11, for example, every onesecond. In this example, it is assumed that the delay time of 200 ms isobtained.

At S85, the data transmit/receive 11 of the counterpart terminal 10 dbsends the delay time information indicating the delay time of 200 ms tothe management system 50 through the communication network 2, during themanagement data session “sei”. With the delay time information, themanagement system 50 is notified of the delay time, and the IP address“1.3.2.4” of the counterpart terminal 10 db that has sent the delay timeinformation.

At S86, the delay time manager 60 of the management system 50 searchesthe terminal management DB 5003 (FIG. 12) using the IP address “1.3.2.4”of the counterpart terminal 10 db as a search key to extract theterminal ID “01db” of the counterpart terminal 10 db. The delay timemanager 60 stores the delay time of 200 ms obtained from the delay timeinformation in a “delay time” field of the record of the terminal ID“01db” of the session management table stored in the session managementDB 5005 (FIG. 14).

At S87, the quality determiner 58 searches the quality management DB5007 (FIG. 15) using the delay time of 200 ms to extract the image dataquality of “MEDIUM”. Based on the extracted image data quality, thequality determiner 58 determines that the quality of image data suitablefor the delay time of 200 ms is medium.

At S88, the data transmit/receive 51 searches the relay terminalmanagement DB 5001 (FIG. 10) using the relay terminal ID “111e”, whichis stored in the session management DB (FIG. 14) in association with thecounterpart terminal ID “01db”, to extract the IP address “1.1.1.3” ofthe relay terminal 30 e.

At S89, the data transmit/receive 51 sends the quality informationindicating that the image data quality that has been determined at S87is medium-level, to the relay terminal 30 e through the communicationnetwork 2 during the management data session “sei”. The image qualityinformation is transmitted with the IP address “1.3.2.4” of thecounterpart terminal 10 db, which was used as a search key at S86.

At S90, the change quality manager 34 of the relay terminal 30 e storesthe IP address “1.3.2.4” of the counterpart terminal 10 db inassociation with the “medium-level” quality image data to be relayed bythe counterpart terminal 10 db, in the data quality management DB 3001(FIG. 8).

At S91, the request terminal 10 aa transmits the high quality image dataincluding the low-level resolution image data, the medium-levelresolution image data, and the high-level resolution image data, and thesound data, to the relay terminal 30 e during the contents data session“sed”, in a substantially similar manner as described above referring toS81.

At S92, the data quality checker 33 of the relay terminal 30 e searchesthe data quality management DB 3001 (FIG. 8) using the IP address“1.3.2.4” of the counterpart terminal 10 db as a search key to extractthe quality of the image data suitable for the counterpart terminal 10db, in a substantially similar manner as described above referring toS82.

At S93, since the image data quality that is stored for the counterpartterminal 10 db is the medium-level, which is lower than the quality ofthe image data that is received at the data transmit/receive 31, thedata quality changer 35 changes the quality of the image data from thehigh-level to the medium level. In this example, the quality of thesound data remains the same.

At S94, the data transmit/receive 31 of the relay terminal 30 e sendsthe image data having the quality that is lowered to the medium-level,and the sound data, to the counterpart terminal 10 db through thecommunication network 2, during the contents data session “sed”. Thedata transmit/receive 11 of the counterpart terminal 10 db receives themedium-quality image data that is generated based on the low-levelresolution image data and the medium-level resolution image data, andthe sound data. The display control 16 of the counterpart terminal 10 dbcombines the image data of two different resolution levels to generatethe medium-level image data for display on the display 120. Further, thesound output 15 b outputs sounds such as voices generated based on thesound data.

As described above, when any delay in receiving the image data at thecounterpart terminal 10 db is observed, the relay terminal 30 e changesthe quality of image data by lowering the quality of image data.Accordingly, the users participating the videoconference are able tocarry out communication more smoothly.

Referring to FIG. 29, operation of managing a request for participatingin the contents data session that has been established between therequest terminal 10 aa and the counterpart terminal 10 db, which isgenerated by a participation request terminal 10 cb, performed by thetransmission system 1, is explained according to an example embodimentof the present invention. More specifically, in this example, it isassumed that the user at the request terminal 10 aa invites the user atthe terminal 10 cb to join the videoconference after the contents datasession starts. Further, in this example, it is assumed that the user atthe terminal 10 cb, or the terminal 10 cb, is not registered as aparticipant of the contents data session. In FIG. 29, management data istransmitted or received through the management data session “sei”.

At S101, as the user at the request terminal 10 aa presses the operationbutton 108 (FIG. 2), the terminal 10 aa receives a user instruction forinviting the counterpart terminal 10 cb to participate in the contentsdata session “sed”.

At S 102, the data transmit/receive 11 of the request terminal 10 aatransmits session ID notice request information to the management system50 through the communication network 2. The session ID notice requestinformation includes the terminal ID “01aa” of the request terminal 10aa, the terminal ID “01cb” of the counterpart terminal 10 cb, and thesession ID “sel” of the contents data session being carried out by theterminals 10 aa and 10 db.

When the session ID notice request information is received, at S103, thedata transmit/receive 51 of the management system 50 transmits thesession ID notice information to the counterpart terminal 10 cb, whichincludes the terminal ID “01aa” of the request terminal 10 aa, and thesession ID “sel”.

When the session ID notice information is received, at S104, thecounterpart terminal 10 cb accepts the invitation for participating inthe contents data session “sed” with the session ID “sel”. In thisexample, when the user at the counterpart terminal 10 cb presses theoperation button 108 (FIG. 2), the counterpart terminal 10 cb receives arequest for participating in the contents data session. At S105, thedata transmit/receive 11 of the counterpart terminal 10 cb, whichrequests for participating in that session, sends session participationrequest information to the management system 50. The sessionparticipation request information includes the terminal ID “01cb” of thecounterpart terminal 10 cb (“the request participating terminal 10 cb”),the change request data “Call” indicating a request for participatingthe contents data session, and the session ID “sel” of the contents datasession.

When the session participation request information is received, at S106,the management system 50 determines whether to allow the counterpartterminal 10 cb (“the participation requesting terminal 10 cb”) toconnect with the participating terminals 10 aa and 10 db that areparticipating in the contents data session “sed”, using informationobtainable from the candidate list management table of FIG. 13.

Referring now to FIG. 30, operation of determining whether to allowconnection of the terminal 10 cb that requests for participating, withthe participating terminals 10 aa and 10 db, performed at S106 of FIG.29, is explained according to an example embodiment of the presentinvention.

At S106-1, the session manager 57 searches the session management table(FIG. 14) using the session ID “sel” as a search key, which is extractedfrom the participation request information, to obtain the terminal ID“01aa” of the request terminal 10 aa and the terminal ID “01db” of thecounterpart terminal 10 db that are participating in the contents datasession with the session ID “sel”.

At S106-2, the terminal extractor 54 searches the candidate listmanagement table (FIG. 13) using the terminal ID “01aa” and “01db” ofthe participating terminals 10 that are extracted by the session manager57 as a search key to obtain terminal IDs of candidate terminals thatare registered for the participating terminals 10. In this example, theterminal extractor 54 extracts the terminal IDs “01ab”, “01ba”, and“01db” of the candidate terminals registered for the participatingterminal 10 aa, and the terminal IDs “01aa”, “01cb”, and “01da” of thecandidate terminals registered for the participating terminal 10 db.

At S106-3, the connection determiner 62 determines whether the terminalID of the participation requesting terminal 10 is included in a list ofthe terminal IDs of the candidate terminals that are extracted for theparticipating terminals 10 by the terminal extractor 54 at S106-2. Morespecifically, in this example, the connection determiner 62 determinesthat the terminal ID of the participation requesting terminal 10 isincluded, when the terminal ID “01cb” of the participation requestingterminal 10 cb is included in the list of terminal IDs “01ab”, “01ba”,“01db”, “01aa”, “01cb”, and “01da” of the candidate terminals for theparticipating terminals 10 aa and 10 db (“YES” at S106-3). In such case,the operation proceeds to S106-5.

When it is determined that the terminal ID of the participationrequesting terminal 10 is not included in the list of terminal IDs ofthe candidate terminals for the participating terminals 10 (“NO” atS106-3), the operation proceeds to S106-4 to cause the connectiondeterminer 62 to generate an error message, and send the error messageto the participation requesting terminal 10 that requests forparticipating. In such case, the management system 50 does not performfurther processing of S107 to S113 of FIG. 29.

Assuming that the terminal ID of the participation requesting terminal10 cb is included (“YES” at S106-3), at S106-5, the calculator 63calculates a distance of the shortest path between the participationrequesting terminal 10 cb and the participating terminal 10 for each setof a plurality of sets of the participation requesting terminal 10 cband the participating terminal 10. The calculator 63 specifies a set ofthe participation requesting terminal 10 and the participating terminal10 having the largest value of distance of the shortest path between thenodes. In calculation, the calculator 63 defines a distance of theshortest path between the request terminal 10 and the candidate terminal10 that is registered in the candidate list management table (FIG. 13)for the request terminal 10 to be a predetermined value. The distance ofthe shortest path between the participation requesting terminal 10 andeach of the participating terminals 10 is calculated based on thispredetermined value.

Referring now to FIG. 31, operation of calculating a distance of theshortest path between the terminals 10 is explained according to anexample embodiment of the present invention.

In this example, it is assumed that the participation requestingterminal 10 cb is stored in the candidate list management table (FIG.13) as a candidate terminal for the participating terminal 10. Asillustrated in FIG. 31, the distance of the shortest path between theparticipation requesting terminal 10 cb and the participating terminal10 is defined to be “1”. More specifically, referring to the candidatelist management table (FIG. 13), the terminal ID “01cb” of theparticipation requesting terminal 10 cb is registered as a terminal IDof a candidate terminal that is associated with the terminal ID “01db”of the participating terminal 10 db. The distance of the shortest pathbetween the participation requesting terminal 10 cb and theparticipating terminal 10 db is defined to be “1”.

Still referring to the candidate list management table (FIG. 13), theterminal ID “01cb” of the participation requesting terminal 10 cb is notregistered as a terminal ID of a candidate terminal that is associatedwith the participating terminal 10 aa with the terminal ID “01aa”. Thedistance of the shortest path between the participation requestingterminal 10 cb and the participating terminal 10 aa is determined to begreater than “1”.

In case the distance of the shortest path between the participationrequesting terminal 10 and the participating terminal 10 is greater than“1”, the value of such distance is calculated as follows. Referring tothe candidate list management table (FIG. 13), the participatingterminal 10 db having the distance “1” with the participation requestingterminal 10 cb is managed as a candidate terminal of anotherparticipating terminal 10 aa. In such case, the distance of the shortestpath between the participation requesting terminal 10 cb and anotherparticipating terminal 10 aa is defined to be “2” as illustrated in FIG.31( a). More specifically, the terminal ID “01db” of the terminal 10 dbhaving the distance “1” with the participation requesting terminal 10 cbis registered as a terminal ID of a candidate terminal that isassociated with another participating terminal 10 aa with the terminalID “01aa”. The distance of the shortest path between the participationrequest terminal 10 cb and the participating terminal 10 aa is thusdefined to be “2”.

The calculator 63 calculates a distance of the shortest path between theparticipation request terminal 10 cb and one of the participatingterminals 10 aa and 10 db that has a greater value of distance withrespect to the participation request terminal 10 cb. In this example,the calculator 63 obtains the distance “2” of the shortest path betweenthe participation request terminal 10 cb and the participating terminal10 aa. The calculator 63 performs this calculation, for example,according to a graph search algorithm that solves the single-sourceshortest path problem, which is known as the Dijkstra's algorithm. Forexample, the CPU 201 may perform calculation using the Dijkstra'salgorithm, which may be stored in the form of computer-executableinstructions.

Referring back to FIG. 30, at S106-6, the connection determiner 62determines whether the distance obtained by the calculator 63 at S106-5is less than a predetermined value, i.e., threshold. In this example,the threshold is set to “3”. The value of threshold is previously storedin a predetermined memory area of a memory such as the nonvolatilememory 5000, and read out via the memory control 59. When it isdetermined that the obtained distance is less than the threshold (“YES”at S106-6), the operation proceeds to S106-7. At S106-7, the memorycontrol 59 stores the terminal ID “01cb” of the participation requestingterminal 10 cb, the session ID “sel” of the contents data session thatthe participation requesting terminal 10 cb requests to participate, andthe distance “2” of the participation requesting terminal 10 cb withrespect to the participating terminal 10 aa, in a predetermined memoryarea of the nonvolatile memory 5000. The operation further proceeds toS107 of FIG. 29 to cause the management system 50 to perform furtherprocessing, which causes the participation requesting terminal 10 cb toconnect with the participating terminals 10 aa and 10 db.

When it is determined that the distance obtained at S106-5 is equal toor greater than the threshold (“NO” at S106-6), the operation proceedsto S106-8. At S106-8, the data transmit/receive 51 of the managementsystem 50 generates an error message, and sends the error message to theparticipation requesting terminal 10 cb. In such case, S107 to S113 ofFIG. 29 are not performed.

In this example, it is assumed that further processing of S107 to S113of FIG. 29 is performed to cause the participation requesting terminal10 cb and the participating terminals 10 aa and 10 db to be connected.At S107, the state manager 53 of the management system 50 searches theterminal management table (FIG. 12) using the terminal ID “01cb” of theparticipation requesting terminal 10 cb that is extracted from thesession participation request information, to obtain a record thatcorresponds to the terminal ID “01cb”, and changes the communicationstate field of the obtained record.

Referring now to FIG. 32, managing the state information of theparticipation requesting terminal 10 cb, performed at 5107, is explainedaccording to an example embodiment of the present invention.

At S107-1, the state obtainer 53 b of the state manager 53 (FIG. 6)obtains the communication state of the terminal 10 that is managed bythe terminal management DB 5003. In this example, the change requestdata determiner 61 determines that the change request data “Call” thatis received at the data transmit/receive 51 is not the specific changerequest data that is previously determined. More specifically, thechange request data determiner 61 determines that the change requestdata “Call” is not the “Invite” or the “Accept”, and further determinesto use the state change management table of FIG. 17. Based on thisdetermination, the state obtainer 53 b obtains the communication stateof the participation requesting terminal 10 cb. More specifically, thestate obtainer 53 b searches the terminal management table (FIG. 12)using the terminal ID “01cb” of the participation requesting terminal 10cb as a search key to obtain the communication state “None” of theparticipation requesting terminal 10 cb.

At S107-2, the state changer 53 c of the state manager 53 obtains theprevious state data of the terminal that corresponds to the changerequest data “Call”. More specifically, the state changer 53 c searchesthe state change management table (FIG. 17) using the change requestdata “Call” as a search key to obtain the previous state data “None” ofthe participation requesting terminal 10 cb.

At S107-3, the state changer 53 c compares the communication stateobtained by the state obtainer 53 b at S107-1, with the previous statedata obtained by the state changer 53 c at S107-2 to obtain a comparisonresult. More specifically, the state changer 53 c compares thecommunication state “None” of the participation requesting terminal 10cb with the previous state data “None” of the participation requestingterminal 10 cb to generate a comparison result.

When the comparison result generated at S107-3 indicates that thecommunication state and the previous state data match for theparticipation requesting terminal 10 cb (“YES” at S107-3), the operationproceeds to S107-4. At S107-4, the state changer 53 c obtains thechanged state data of the participation requesting terminal 10 cb thatcorresponds to the change request data “Call”. More specifically, thestate changer 53 c searches the state change management table (FIG. 17)using the change request data “Call” as a search key to obtain thechanged state data “Accepted”.

At S107-5, the state changer 53 c searches the terminal management table(FIG. 12) for the record corresponding to the terminal ID “01cb” of theparticipation requesting terminal 10 cb to change the communicationstate field for the participation requesting terminal 10 cb. Morespecifically, the state changer 53 c changes the communication statefield in the record that corresponds to the terminal ID “01cb”, which isstored in the terminal management table of FIG. 12, to the communicationstate “Accepted” based on the changed state data obtained for theparticipation requesting terminal 10 cb.

At S107-3, when the comparison result generated by the state changer 53c indicates that the communication state is not the same as the previousstate data (“NO” at S107-3), the state changer 53 c does not change thecommunication state field stored in the terminal management table (FIG.12) for the record of the terminal ID “01cb” of the participationrequesting terminal 10 cb. In such case, the operation proceeds toS107-6 to cause the data transmit/receive 51 to send an error message tothe participation requesting terminal 10 cb, and the operation ends.

More specifically, when the error message is sent from the managementsystem 50, S108 to S113 of FIG. 29 are not performed. Instead, theparticipation requesting terminal 10 cb, which receives the errormessage, causes the display 120 cb to display an error message to theuser.

In this example, it is assumed that the communication state of theparticipation requesting terminal 10 cb is changed at S107-5. In suchcase, S108 to S113 of FIG. 29 are performed as follows.

At S108, the session manager 57 searches the session management table(FIG. 14) stored in the nonvolatile memory 5000 to specify a record thatcorresponds to the session ID “sel”, and adds the terminal ID “01cb” ofthe participation requesting terminal 10 cb in the counterpart terminalfield.

At S109, the data transmit/receive 51 of the management system 50transmits the participation permission notice information to theparticipation requesting terminal 10 cb to notify the participationrequesting terminal 10 cb that participation in the contents datasession “sed” is allowed. The participation permission noticeinformation includes the session ID “sel” and the relay terminalconnection information to be used for connecting to the relay terminal30 e. In addition to the participation permission notice information,the data transmit/receive 51 may send information regarding the distanceof the participation requesting terminal 10 cb with respect to theparticipating terminal 10 aa, which is stored at S106-7. With thedistance information, the user at the participation requesting terminal10 cb is able to know the degree of risk in participating in thecontents data session.

For example, when the distance information indicates relatively a highvalue, the user at the terminal 10 cb may cancel the request forparticipating in that session even though the user accepts the requestfrom the terminal 10 aa probably because the user at the terminal 10 cbknows the user at the terminal 10 aa. The distance information may bedisplayed in various formats other than the number.

When the participation permission notice information is received, atS110, the data transmit/receive 11 of the participation requestingterminal 10 cb sends the session ID “sel” and the relay terminalconnection information, which is included in the participationpermission notice information, to the relay terminal 30 e. Using thisinformation, the participation requesting terminal 10 cb is connected tothe relay terminal 30 e.

At a predetermined time after connection with the relay terminal 30 e isestablished, the data transmit/receive 11 of the participationrequesting terminal 10 cb sends the relay request information to themanagement system 50, which includes the terminal ID “01cb” of theterminal 10 cb, the session ID “sel”, and the change request data“Join”. When the relay request information is received, the managementsystem 50 and the relay terminal 30 e perform S72-1, S73-1, S74-1, andS75-1 (FIG. 26) to establish the contents data session “sed” between theterminal 10 cb and the relay terminal 30 e. When the contents datasession “sed” is established, the relay terminal 30 e relays contentsdata such as image data and/or sound data among the terminals 10 aa, 10cb, and 10 db to carry out videoconference among the terminals 10 aa, 10cb, and 10 db.

Referring to S29, at S111-1 and S111-2, the data transmit/receive 51 ofthe management system 50 sends the participation notice informationincluding the terminal ID “01cb” of the participation requestingterminal 10 cb, and the session ID “sel”, to the participating terminals10 aa and 10 db, respectively. With this participation noticeinformation, the participating terminals 10 aa and 10 db are able toknow that the participation requesting terminal 10 cb is participatingin the contents data session.

At S112, the terminal extractor 54 of the management system 50 searchesthe candidate list management table (FIG. 13) using the terminal ID“01cb” of the participation requesting terminal 10 cb as a search key,which is extracted from the session participation request information,to obtain a terminal ID of each of candidate terminals that areregistered for the participation requesting terminal 10 cb. In thisexample, the terminal IDs “01aa”, “01bb”, and “01db” are extracted.

At S113, the data transmit/receive 51 of the management system 50 sendsparticipation notice information to the candidate terminals 10 aa, 10bb, and 10 db each having the terminal ID extracted at S112. In thisexample, the participation notice information includes the terminal ID“01cb” of the participation requesting terminal 10 cb. S113 is performedfor any of the candidate terminals 10 that are associated with theparticipation requesting terminal 10 cb, only if transmission of theparticipation notice information has not been performed at S111-1 orS111-2. In this example, since the candidate terminals 10 aa and 10 db,which are the participating terminals 10, already received suchparticipation notice information, the management system 50 sends theparticipation notice information to the candidate terminal 10 bb. Withthis participation notice information, the candidate terminal 10 bb isable to know that the participation requesting terminal 10 cb isparticipating in the contents data session.

For example, the candidate terminal 10 bb causes the display 120 bb todisplay a candidate list with the icon indicating that the participationrequesting terminal 10 cb is in the online state, and havingvideoconference with the other terminals 10.

Operation of FIG. 29 may be performed in various other ways. Forexample, at 102, when the management system 50 receives the request fornotifying a counterpart terminal 10 of the session being performed bythe request terminal 10, the management system 50 may determine whetherto send such information regarding the session being performed to thecounterpart terminal 10.

More specifically, in this example, the request terminal 10 aa sends therequest for notifying the counterpart terminal 10 cb of the session withthe session ID “sel”. When such request is received, the managementsystem 50 extracts terminal IDs of the candidate terminals that areassociated with the request terminal 10 aa, and determines whether theterminal IDs of the candidate terminals that are associated with therequest terminal 10 aa include the terminal ID “01cb” of the counterpartterminal 10 cb. The management system 50 sends information regarding thesession such as the session ID “sel” to the counterpart terminal 10 cb,when the terminal ID “01cb” of the counterpart terminal 10 cb isincluded in the list of terminal IDs of the candidate terminals that areassociated with the request terminal 10 aa.

Referring now to FIG. 33, operation of managing a request for leavingfrom the contents data session that is generated by the request terminal10 aa, is explained according to an example embodiment of the presentinvention. It is assumed that operation of FIG. 33 is performed afterthe contents data session “sed” is established among the terminals 10aa, 10 cb, and 10 db. In FIG. 26, management data is transmitted orreceived through the management data session “sei”.

At S121, as the user at the request terminal 10 aa presses the operationbutton 108 (FIG. 2), the request terminal 10 aa receives a request forleaving from the contents data session.

At S122, the data transmit/receive 11 of the request terminal 10 aasends session leave request information to the management system 50,which includes the terminal ID “01aa” of the request terminal 10 aa, thechange request data “Leave” that requests for leaving from the contentsdata session, and the session ID “sel” for identifying the contents datasession.

When the session leave request information is received, at S123, thestate manager 53 of the management system 50 searches the terminalmanagement table (FIG. 12) using the terminal ID “01aa” of the requestterminal 10 aa, which is extracted from the session leave requestinformation, to specify a record that corresponds to the terminal ID“01aa”, and changes the communication state field of the specifiedrecord.

Referring now to FIG. 27, operation of managing the state information ofthe request terminal 10 aa, performed at S123, is explained according toan example embodiment of the present invention.

At S123-1, the state obtainer 53 b of the state manager 53 obtains thecommunication state of the terminal using the terminal management DB5003 (FIG. 12). In this example, the change request data determiner 61determines that the change request data “Leave”, which is received atthe data transmit/receive 51, is not the specific change request datathat is previously determined. More specifically, it is determined thatthe change request data “Leave” differs from any one of the “Invite” andthe “Accept”. Accordingly, the change request data determiner 61determines to use the state change management table of FIG. 17. Based onthis determination, the change obtainer 53 b obtains only thecommunication state of the request terminal 10 aa. More specifically,the state obtainer 53 b searches the terminal management table (FIG. 12)using the terminal ID “01aa” of the terminal 10 aa as a search key toobtain the communication state “Busy” of the request terminal 10 aa thatsends the leave request information.

At S123-2, the state changer 53 c of the state manager 53 obtains theprevious state data that corresponds to the change request data “Leave”.More specifically, the state changer 53 c searches the state changerequest table (FIG. 17) using the change request data “Leave” as asearch key to obtain the previous state data “Busy”.

At S123-3, the state changer 53 c compares the communication stateobtained by the state obtainer 53 b at S123-1 with the previous statedata obtained by the state changer 53 c at S123-2 to generate acomparison result. More specifically, the state changer 53 c comparesthe communication state “Busy” of the request terminal 10 aa that isobtained by the state obtainer 53 c, with the previous state data “Busy”obtained by the state changer 53 c to generate a comparison result.

When the comparison result generated at S123-3 indicates that thecommunication state and the previous state data match (“YES” at S123-3),the operation proceeds to S123-4. At S123-4, the state changer 53 cobtains the changed state data of the request terminal 10 aa thatcorresponds to the change request data “Leave”. More specifically, thestate changer 53 c searches the state change management table (FIG. 17)using the change request data “Leave” to obtain the changed state data“None” of the request terminal 10 aa.

At S123-5, the state changer 53 c searches the terminal management table(FIG. 12) for the record that corresponds to the terminal ID “01aa” ofthe request terminal 10 aa to change the communication state field forthe request terminal 10 aa. More specifically, the state changer 53 cchanges the communication state field in the record that corresponds tothe terminal ID “01aa”, which is stored in the terminal management table(FIG. 12), to the communication state “None” based on the changed statedata of the request terminal 10 aa.

At S123-3, when the comparison result generated by the state changer 53c indicates that the communication state is not the same as the previousstate data (“NO” at S123-3), the state changer 53 c does not change thecommunication state field stored in the terminal management table (FIG.12) for the record of the terminal ID “01aa”. In such case, theoperation proceeds to S123-6 to cause the data transmit/receive 51 tosend an error message to the request terminal 10 aa, and the operationends.

More specifically, when the error message is sent from the managementsystem 50, S124 to S132 of FIG. 33 are not performed. Instead, therequest terminal 10 aa, which receives the error message, causes thedisplay 120 aa to display an error message to the user.

In this example, it is assumed that the communication state of therequest terminal 10 aa is changed at S123-5. In such case, referring toFIGS. 33, S124 to S132 are performed as follows.

At S124, the session manager 57 searches the session management table(FIG. 14) stored in the nonvolatile memory 5000 to specify a record thatcorresponds to the session ID “sel”, and delete the terminal ID “01aa”of the request terminal 10 aa from the request terminal field.

At S125, the management system 50 sends session leave requestinformation to the relay terminal 30 e, which includes the terminal ID“01aa” of the request terminal 10 aa, and the session ID “sel”. When thesession leave request information is received, the relay terminal 30 estops relaying of contents data through the contents data session to therequest terminal 10 aa, and disconnects connection with the terminal 10aa. At S126, the relay terminal 30 e sends session leave responseinformation to the management system 50 to notify the management system50 that the request for leaving from the contents data session isaccepted. The session leave response information includes the terminalID “01aa” of the request terminal 10 aa, and the session ID “sel”.

When the session leave response information is received, at S127, thedata transmit/receive 51 of the management system 50 sends session leaveresponse information to the request terminal 10 aa to notify the requestterminal 10 aa that the request for leaving from the contents datasession is accepted. The session leave response information includes theterminal ID “01aa” of the request terminal 10 aa, the change requestdata “Leave”, the session ID “sel”, and the response “OK” indicatingthat the request for leaving is accepted.

When the session leave response information is received, the user at theterminal 10 aa may turn off the power switch 109 of the terminal 10 aa.In such case, at S128, the terminal 10 aa receives a user instructionfor turning off the power of the terminal 10 aa.

At S129, the data transmit/receive 11 of the terminal 10 aa sends poweroff request information to the management system 50 to notify that thepower is turned off at the terminal 10 aa. The power off requestinformation includes the terminal ID “01aa” of the request terminal 10aa.

When the power off request information is received at the datatransmit/receive 51, at S130, the state manager 53 of the managementsystem 50 searches the terminal management table (FIG. 12) using theterminal ID “01aa” of the request terminal 10 aa, which is extractedfrom the power off request information, to specify a record of theterminal ID “01aa”, and changes the operation state field and thecommunication state field of the specified record. More specifically,the operation state field is changed to “OFFLINE”, and data in thecommunication state field is deleted.

At S131, the data transmit/receive 51 sends power off respondinformation to the request terminal 10 aa to notify the request terminal10 aa that the power off request is accepted. Further, the managementsystem 50 disconnects the management data session, which is establishedwith the request terminal 10 aa.

When the power off respond information is received, at S 132, therequest terminal 10 aa turns off the power of the terminal 10 aa, andthe operation ends.

Any one of the other participating terminals 10 cb and 10 db may performS121 to S132 to leave from the contents data session “sed”, and turnedoff the power of the terminal.

In the examples illustrated above, when a contents data session isestablished between a first terminal and a second terminal, the datatransmit/receive 51 of the management system 50 may receive a requestfor participating in the contents data session from a third terminal.When such request for participating is received, the terminal extractor54 extracts terminal IDs of one or more candidate terminals that areassociated with the first terminal, and terminal IDs of one or morecandidate terminals that are associated with the second terminal, from acandidate list management table (FIG. 13). The connection determiner 62determines whether a terminal ID of the third terminal is included inthe terminal IDs of the candidate terminals that are extracted togenerate a determination result. Based on the determination result, themanagement system 50 controls connections of the third terminal with thefirst terminal and the second terminal. With this connection controlperformed by the management system 50, even when the third terminal isnot previously registered as a terminal that may participate in thecontents data session, the third terminal is allowed to participate inthe contents data session as long as the determination result indicatesthat the terminal ID of the third terminal is included in the list ofcandidate terminal IDs obtained for the participating terminals.

When the third terminal starts participating in the contents datasession, the terminal extractor 54 extracts a terminal ID of each one ofcandidate terminals that are associated with the terminal ID of thethird terminal, from the candidate list management table (FIG. 13). Thedata transmit/receive 51 sends notification to the candidate terminalhaving the extracted terminal ID, which indicates that the thirdterminal is participating in the contents data session.

When the first terminal and the second terminal are having the contentsdata session, the data transmit/receive 51 of the management system 50receives information regarding the session ID of the contents datasession, from the first terminal, with a request for sending theinformation regarding the session ID to the third terminal. The terminalextractor 54 extracts a terminal ID of each one of candidate terminalsthat are associated with the terminal ID of the first terminal, from thecandidate list management table (FIG. 13). When the management system 50determines that the terminal IDs of the candidate terminals, which areextracted by the terminal extractor 54, include a terminal ID of thethird terminal to which the information regarding the session ID is tobe transmitted, the data transmit/receive 51 sends the informationregarding the session ID to the third terminal. With this informationregarding the session ID sent from the first terminal, the thirdterminal may send a request for participating in the contents datasession specified by the session ID.

The calculator 63 of the management system 50 calculates a distance ofthe shortest path between the third terminal and the participatingterminal that is participating in the contents data session, for eachone of the participating terminals (the first terminal and the secondterminal). The calculator 63 specifies one of the participatingterminals having the largest distance of the shortest path with respectto the third terminal, and obtains the value of the largest distance ofthe shortest path between the third terminal and the specifiedparticipating terminal. In calculation, the calculator 63 defines adistance of the shortest path between a terminal 10 and a candidateterminal that is associated with the terminal 10 to be a predeterminedvalue. The distance of the shortest path between the third terminal andthe participating terminal is obtained based on the predetermined value.

The connection determiner 62 determines whether the largest distance ofthe shortest path between the third terminal and the participatingterminal, which is obtained by the calculator 63, is less than athreshold to generate a determination result. Based on the determinationresult, the management system 50 determines whether to allow the thirdterminal to connect with the participating terminal.

The data transmit/receive 51 of the management system 50 sendsinformation regarding the distance of the shortest path between thethird terminal and one of the participating terminals having the largestdistance, to the third terminal. With the information regarding thedistance, the user at the third terminal knows the degree of risk inparticipating in the session.

The management system 50 controls connection among the first terminal,the second terminal, and the third terminal. The data transmit/receive51 sends relay terminal connection information to be used for connectingwith the relay terminal 30 that relays contents data between the firstterminal and the second terminal, to the third terminal. Using the relayterminal connection information, the third terminal is able to connectwith the relay terminal 30.

In the above-described examples, as illustrated in FIG. 31( a), atS106-5 (FIG. 30), the distance of the shortest path between theparticipation requsting terminal 10 cb and the participating terminal 10db is defined to be “1”, when the participation requesting terminal 10cb is managed as a candidate terminal that is associated with theparticipating terminal 10 db. Since the participating terminal 10 aa ismanaged as a candidate terminal of the participating terminal 10 db, thedistance of the shortest path between the participation requestingterminal 10 cb and the participating terminal 10 aa is calculated as“2”.

In another example, as illustrated in FIG. 31( b), assuming that theparticipating terminal 10 cb is managed as a candidate terminal that isassociated with each of the participation requesting terminals 10 aa and10 db in the candidate list management table (FIG. 13), the distance ofthe shortest path between the participation requesting terminal 10 cband each of the participating terminals 10 aa and 10 db is defined as“1”. In such case, the largest value of distance of the shortest pathbetween the participation requesting terminal and the participatingterminal is “1”.

In another example, as illustrated in FIG. 31( c), assuming that theparticipation requesting terminal 10 cb is managed as a candidateterminal that is associated with the participating terminal 10 db in thecandidate list management table (FIG. 13), and the participatingterminal 10 db is managed as a candidate terminal that is associatedwith the participation requesting terminal 10 cb in the candidate listmanagement table (FIG. 13), the distance of the shortest path betweenthe participation requesting terminal 10 cb and the participatingterminal 10 db is defined to be “1”.

The relay terminal 30, the management system 50, the program providingsystem 90, and the maintenance system 100 may be each implemented by asingle computer. Alternatively, any number of parts, functions, ormodules of the relay terminal 30, the management system 50, the programproviding system 90, and the maintenance system 100 may be classifiedinto a desired number of groups to be carried out by a plurality ofcomputers. In case the program providing system 90 is implemented by thesingle computer, the program to be provided by the program providingsystem 90 may be transmitted, one module by one module, after dividinginto a plurality of modules, or may be transmitted at once. In case theprogram providing system 90 is implemented as a plurality of computers,each computer may transmit each module that is stored in its memory,after the program is divided into a plurality of modules.

A recording medium storing any one of the terminal control program,relay control program, and transmission management program, or a storagedevice such as the HDD 204 that stores any one of the terminal controlprogram, relay control program, and transmission management program, orthe program providing system 90 provided with the HD 204 storing any oneof the terminal control program, relay control program, and transmissionmanagement program, may be distributed within the country or to anothercountry as a computer program product.

In the above-described examples, the quality of image data to beprocessed by the relay terminal 30, which is determined based oninformation obtainable from any one of the data quality management tableof FIG. 8 and the quality management table of FIG. 15 is analyzed interms of image resolution. Alternatively, any other criteria may be usedto analyze quality of image data including, for example, depth of image,sampling frequency in case of voice data, and bit length in case ofvoice data.

Further, the date and time information stored in the relay terminalmanagement table of FIG. 10 or the terminal management table of FIG. 12,or the delay time information stored in the session management table ofFIG. 14, is expressed in terms of date and time. Alternatively, the dateand time information or the delay time information may be expressed onlyin terms of time such as the time at which information is received.

Further, in the above-described examples, the relay terminal IP addressof the relay terminal 30 and the terminal IP address of the terminal 10are respectively managed using the relay terminal management table ofFIG. 10 and the terminal management table of FIG. 12. Alternatively, therelay terminal 30 and the terminal 10 may each be managed using anyother identification information or using any other tables. For example,when the relay terminal 30 or the terminal 10 needs to be identified onthe communication network 2, the relay terminal 30 or the terminal 10may be managed using Fully Qualified Domain Name (FQDN). In such case,the transmission system 10 is provided with a domain name system (DNS)server that obtains the IP address that corresponds to the FQDN of therelay terminal 30 or the terminal 10. In view of this, identificationinformation for identifying the relay terminal 30 on the communicationnetwork 2 may not only include the identification information thatidentifies the relay terminal 30 on the communication network 2, butalso identification information that identifies a node on thecommunication network 2 to which the relay terminal 30 is connected, oridentification information that identifies a node on the communicationnetwork 2 from which the relay terminal 30 is connected. Similarly,identification information for identifying the terminal 10 on thecommunication network 2 may not only include the identificationinformation that identifies the terminal 10 on the communication network2, but also identification information that identifies a node on thecommunication network 2 to which the terminal 10 is connected, oridentification information that identifies a node on the communicationnetwork 2 from which the terminal 10 is connected.

In the above-described examples, the transmission system 1 of FIG. 1 istreated as a videoconference system. Alternatively, the transmissionsystem 1 of FIG. 1 may be implemented as a teleconference system such asthe IP teleconference system or the Internet teleconference system.Alternatively, the transmission system 1 of FIG. 1 may be implemented asa car navigation system. For example, the request terminal 10 may beimplemented as a car navigation system that is installed onto anautomobile. The counterpart terminal 10 may be implemented as amanagement terminal or server at a management center that manages thecar navigation system or a car navigation system that is installed ontoanother automobile. Alternatively, the transmission system 1 may be anyone of teleconference system or a personal computer image sharingsystem.

In another example, the transmission system 1 of FIG. 1 may beimplemented as a communication system having a portable phone. In suchcase, the terminal 10 is implemented as a portable phone as illustratedin FIG. 34. The terminal 10, or the portable phone 10, includes a body1110-1, a menu screen display button 1110-2, a display section 1110-3, amicrophone 1110-4 provided at a lower portion of the body, and a speaker1110-5 provided at an upper portion of the body. When selected, the menuscreen display button 1110-2 causes the display section 1110-3 todisplay a menu screen in which various icons each indicating a specificapplication program are displayed. In this example, the display section1110-3 displays a candidate list that lists a plurality of terminalnames together with a plurality of icons each reflecting the stateinformation of each candidate terminal. Since the terminal 10 in thisexample is implemented as a portable phone, the name of a user who ownsthe specific terminal, or a nickname of the user, is displayed as theterminal name. The display section 1110-3 is a touch panel screen, whichallows the user to select one of the plurality of terminal names, i.e.,the user names, being displayed by the display section 1110-3. When aspecific terminal name, or a user name, is selected, the portable phone10 starts communication with the specific terminal that is selected in asubstantially similar manner as described above.

In the above-described examples, the contents data is assumed to includeimage data and voice data. Alternatively, the contents data may includeany other type of data that affects human senses of sight in alternativeto image data, or any other type of data that affects human senses ofhearing in alternative to voice data. Alternatively, the contents datamay include any other type of data that affects human senses of sight,smell, taste, touch, and hearing. In case the contents data that affectshuman senses of touch, the terminal 10 may convey the contents data thatreflects senses of touch that is felt by a user at the terminal 10 toanother terminal 10 through the communication network 2. In case thecontents data that affects human senses of smell, the terminal 10 mayconvey the contents data that affects senses of smell felt by a user atthe terminal 10 to another terminal 10 through the communication network2. In case the contents data that affects human senses of taste, theterminal 10 may convey the contents data that affects senses of tastefelt by a user at the terminal 10 to another terminal 10 through thecommunication network 2.

Further, the contents data may only include one type of contents dataselected from sight data such as image data, hearing data such as voicedata, touch data, smell data, and taste data.

Numerous additional modifications and variations are possible in lightof the above teachings. It is therefore to be understood that within thescope of the appended claims, the disclosure of the present inventionmay be practiced otherwise than as specifically described herein.

With some embodiments of the present invention having thus beendescribed, it will be obvious that the same may be varied in many ways.Such variations are not to be regarded as a departure from the spiritand scope of the present invention, and all such modifications areintended to be included within the scope of the present invention.

For example, elements and/or features of different illustrativeembodiments may be combined with each other and/or substituted for eachother within the scope of this disclosure and appended claims.

Further, as described above, any one of the above-described and othermethods of the present invention may be embodied in the form of acomputer program stored in any kind of storage medium. Examples ofstorage mediums include, but are not limited to, flexible disk, harddisk, optical discs, magneto-optical discs, magnetic tapes, nonvolatilememory cards, ROM (read-only-memory), etc.

Alternatively, any one of the above-described and other methods of thepresent invention may be implemented by ASIC, prepared byinterconnecting an appropriate network of conventional componentcircuits or by a combination thereof with one or more conventionalgeneral purpose microprocessors and/or signal processors programmedaccordingly.

In one example, the present invention may reside in a connection controlsystem that controls connections among a plurality of terminals througha network. The system includes: candidate terminal managing means formanaging terminal identification information for identifying a terminal,and candidate terminal identification information for identifying one ormore candidate terminals that are associated with the terminal for eachone of the plurality of terminals; receiving means for receiving arequest for participating in a session being performed by at least afirst terminal and a second terminal from a third terminal, when thesession is being performed by at least the first terminal and the secondterminal to exchange contents data; candidate terminal extracting meansfor extracting candidate terminal identification information foridentifying at least one candidate terminal that is associated with eachone of the first terminal and the second terminal using the candidateterminal manager; and a determiner that determines whetheridentification information for identifying the third terminal isincluded in the extracted candidate terminal identification informationto generate a first determination result, and determines whether toallow the third terminal to connect with the first and second terminalsthrough the network to participate in the session based on the firstdetermination result.

In one example, the candidate terminal managing means corresponds to thecandidate list management DB 5004. The receiving means corresponds tothe data transmit/receive 51. The candidate terminal extracting meanscorresponds to the terminal extractor 54. The determiner corresponds tothe connection determiner 62.

As described above, the connection control system extractsidentification information of one or more candidate terminals that areassociated with the first terminal and identification information of oneor more candidate terminals that are associated with the secondterminal. The conection control system further determines whetheridentification information of the third terminal is included in theextracted identification information of the candidate terminals togenerate the first determination result. Based on the firstdetermination result, the connection control system controls connectionsof the third terminal with the first terminal and the second terminal.With this control, the third terminal, which is not previouslyregistered as a participating terminal of the session, is allowed toparticipate in the session being performed by the participatingterminals.

The connection control system further includes a calculator thatcalculates a distance of the shortest path between the third terminaland each of the second terminal and the third terminal, and specifiesone of the second terminal and the third terminal having the largestvalue of distance with respect to the third terminal to obtain thelargest value of distance of the shortest path between the thirdterminal and the specified one of the first terminal and the secondterminal. The determiner determines whether the obtained largest valueof distance is less than a predetermined value to generate a seconddetermination result, and determines whether to allow the third terminalto connect with the first and second terminals based on the seconddetermination result in addition to the first determination result. Inone example, the calculator corresponds to the calculator 63.

In calculation, the calculator defines a value of a distance of theshortest path between the terminal, and the candidate terminal that isassociated with the terminal, which are managed by the candidateterminal manager, to be a predetermined value. The distance of theshortest path between the third terminal and each of the second terminaland the third terminal is obtained based on the predetermined value.

The connection control system further includes distance informationtransmit means for transmitting distance information indicating thelargest value of distance that is obtained by the calculator, to thethird terminal. In one example, the distance information transmit meanscorresponds to the data transmit/receive 51.

In the connection control system, the candidate terminal extractingmeans further extracts candidate terminal identification information foridentifying one or more candidate terminals that are associated with thethird terminal. The system further includes participation informationtransmit means for transmitting information indicating that the thirdterminal is participating in the session, to the candidate terminalshaving the extracted candidate terminal identification information. Inone example, the participation information transmit means corresponds tothe data transmit/receive 51.

In the connection control system, when the receiving means receives arequest for notifying a predetermined terminal of the session beingperformed, from the first terminal, the candidate terminal extractingmeans further extracts candidate terminal identification information foridentifying one or more candidate terminals that are associated withidentification information of the first terminal. When the extractedcandidate terminal identification information of the candidate terminalsthat are associated with the first terminal includes identificationinformation for identifying the predetermined terminal, the systemcauses session information transmit means to transmit informationregarding the session to the predetermined terminal. In one example, thesession information transmit means corresponds to the datatransmit/receive 51.

In one example, the present invention may reside in a transmissionsystem, which includes the above-described connection control system anda relay terminal that relays contents data through the session.

The connection control system further includes a connection informationtransmit means for transmitting relay terminal connection information tobe used for connecting with the relay terminal, to the third terminal,when the determiner determines that the third terminal is allowed toconnect with the first and second terminals. In one example, theconnection information transmit means corresponds to the datatransmit/receive 51.

In one example, the present invention may reside in a method ofcontrolling connections among a plurality of terminals through a networkin a transmission system. The transmission system includes candidateterminal managing means for managing terminal identification informationfor identifying a terminal, and candidate terminal identificationinformation for identifying a candidate terminal that is associated withthe terminal for each one of the plurality of terminals. The methodincludes: receiving a request for participating in a session beingperformed by at least a first terminal and a second terminal from athird terminal, when the session is being performed by at least thefirst terminal and the second terminal to exchange contents data;extracting candidate terminal identification information for identifyingone or more candidate terminals that are associated with each one of thefirst terminal and the second terminal using the candidate terminalmanager; determining whether identification information for identifyingthe third terminal is included in the extracted candidate terminalidentification information to generate a determination result; anddetermining whether to allow the third terminal to connect with thefirst and second terminals to participate in the session based on thedetermination result.

In one example, the present invention may reside in a recording mediumstoring a plurality of instructions, which cause a processor to performany one of the above-described connection control methods.

For example, the present invention may reside in a recording mediumstoring a plurality of instructions, which cause a processor to performa connection control method of controlling connections among a pluralityof terminals through a network. The connection control method includes:managing identification information for identifying a terminal, andidentification information for identifying one or more candidateterminals that are associated with the terminal, for each one of theplurality of terminals; receiving a request for participating in asession being performed by a plurality of participating terminals, froma participation requesting terminal that is not participating in thesession; extracting identification information for identifying at leastone candidate terminal that is associated with the participatingterminal for each one of the plurality of participating terminals toobtain extracted candidate terminal identification information of theparticipating terminals; determining whether the extracted candidateterminal identification information of the participating terminalsincludes identification information for identifying the participationrequesting terminal to generate a first determination result; anddetermining whether to allow the participation requesting terminal toconnect with the plurality of participating terminals through thenetwork to participate in the session, based on the first determinationresult.

In one example, the present invention may reside in a transmissionterminal including: a network interface to send a request forparticipating in a session being performed by a plurality ofparticipating terminals after the session starts; and causing aconnection control system to perform the above-described connectioncontrol method to obtain, from the connection control system,information indicating whether the participation requesting terminal isallowed to connect with the plurality of participating terminals. Theobtained information is output through an output device such as adisplay.

1. A connection control system for controlling connections among aplurality of terminals through a network, the system comprising: astorage device to store identification information for identifying aterminal, and identification information for identifying one or morecandidate terminals that are associated with the terminal, for each oneof the plurality of terminals; a network interface to receive a requestfor participating in a session being performed by a plurality ofparticipating terminals, from a participation requesting terminal thatis not participating in the session; and a controller to: extractidentification information for identifying at least one candidateterminal that is associated with the participating terminal for each oneof the plurality of participating terminals, from the storage device, toobtain extracted candidate terminal identification information of theparticipating terminals; determine whether the extracted candidateterminal identification information of the participating terminalsincludes identification information for identifying the participationrequesting terminal to generate a first determination result; anddetermine whether to allow the participation requesting terminal toconnect with the plurality of participating terminals through thenetwork to participate in the session, based on the first determinationresult.
 2. The connection control system of claim 1, wherein thecontroller is further configured to: specify one of the plurality ofparticipating terminals having a largest value of distance of a shortestpath with respect to the participation requesting terminal to obtain thelargest value of distance of the shortest path between the specified oneof the plurality of participating terminals and the participationrequesting terminal; determine whether the obtained largest value ofdistance is less than a predetermined value to generate a seconddetermination result; and determine whether to allow the participationrequesting terminal to connect with the plurality of participatingterminals through the network based on the second determination resultin addition to the first determination result.
 3. The system of claim 2,wherein the controller is further configured to define a value of adistance of the shortest path between the terminal and the candidateterminal that are associated with each other, to be a predeterminedvalue, wherein the obtained largest value of distance is defined basedon the predetermined value.
 4. The system of claim 3, wherein thenetwork interface further transmits information indicating the obtainedlargest value of distance to the participation requesting terminal whenthe controller determines that the participation requesting terminal isallowed to connect with the plurality of participating terminals throughthe network.
 5. The system of claim 4, wherein: the controller furtherextracts identification information for identifying one or morecandidate terminals that are associated with the participationrequesting terminal; and the network interface transmits informationindicating that the participation requesting terminal is participatingin the session, to the one or more candidate terminals identified by theextracted identification information, when the participation requestingterminal is allowed to connect with the plurality of participatingterminals.
 6. The system of claim 4, wherein, when the network interfacereceives a request for notifying the participation requesting terminalof the session being performed by the plurality of participatingterminals, from a first terminal of the plurality of participatingterminals before the request for participating in the session isreceived from the participation requesting terminal, the controller isfurther configured to: extract identification information foridentifying one or more candidate terminals that are associated with thefirst terminal that sends the request, from the storage device, toobtain extracted candidate terminal identification information of thefirst terminal; determine whether the extracted candidate terminalidentification information of the first terminal includes theidentification information of the participation requesting terminal; andtransmit information regarding the session being performed by theplurality of participating terminals to the participation requestingterminal, when the extracted candidate terminal identificationinformation of the first terminal includes the identificationinformation of the participation requesting terminal.
 7. The system ofclaim 6, wherein the network interface further transmits information tobe used for connecting with a relay terminal that exchanges contentsdata among the participating terminals through the session, to theparticipation requesting terminal, when the participation requestingterminal is allowed to connect with the plurality of participatingterminals.
 8. A transmission system, comprising: a plurality ofparticipating terminals each participating in a session to exchangecontents data through a network; a participation requesting terminalthat transmits a request for participating in the session beingperformed by the plurality of participating terminals, wherein theparticipation requesting terminal is not participating in the session;and connection controlling means for controlling connections among aplurality of terminals through the network, the connection controllingmeans including: means for managing identification information foridentifying a terminal, and identification information for identifyingone or more candidate terminals that are associated with the terminal,for each one of the plurality of terminals; means for receiving therequest for participating in the session being performed by theplurality of participating terminals, from the participation requestingterminal; means for extracting identification information foridentifying at least one candidate terminal that is associated with theparticipating terminal for each one of the plurality of participatingterminals to obtain extracted candidate terminal identificationinformation of the participating terminals; means for determiningwhether the extracted candidate terminal identification information ofthe participating terminals includes identification information foridentifying the participation requesting terminal to generate a firstdetermination result; and means for determining whether to allow theparticipation requesting terminal to connect with the plurality ofparticipating terminals through the network to participate in thesession, based on the first determination result, wherein theparticipation requesting terminal causes an output device to outputinformation indicating whether the participation requesting terminal isallowed to connect with the plurality of participating terminals, basedon information received from the connection controlling means.
 9. Thetransmission system of claim 8, wherein the connection controlling meansfurther includes: means for specifying one of the plurality ofparticipating terminals having a largest value of distance of a shortestpath with respect to the participation requesting terminal to obtain thelargest value of distance of the shortest path between the specified oneof the plurality of participating terminals and the participationrequesting terminal; and means for determining whether the obtainedlargest value of distance is less than a predetermined value to generatea second determination result, wherein the means for determining whetherto allow the participation requesting terminal to connect with theplurality of participating terminals through the network determinesbased on the second determination result in addition to the firstdetermination result.
 10. The transmission system of claim 9, furthercomprising: a relay terminal to relay contents data among the pluralityof participating terminals through the session.
 11. A connection controlmethod of controlling connections among a plurality of terminals througha network, the method comprising: managing identification informationfor identifying a terminal, and identification information foridentifying one or more candidate terminals that are associated with theterminal, for each one of the plurality of terminals; receiving arequest for participating in a session being performed by a plurality ofparticipating terminals, from a participation requesting terminal thatis not participating in the session; extracting identificationinformation for identifying at least one candidate terminal that isassociated with the participating terminal for each one of the pluralityof participating terminals to obtain extracted candidate terminalidentification information of the participating terminals; determiningwhether the extracted candidate terminal identification information ofthe participating terminals includes identification information foridentifying the participation requesting terminal to generate a firstdetermination result; and determining whether to allow the participationrequesting terminal to connect with the plurality of participatingterminals through the network to participate in the session, based onthe first determination result.
 12. The method of claim 11, furthercomprising: specifying one of the plurality of participating terminalshaving a largest value of distance of a shortest path with respect tothe participation requesting terminal to obtain the largest value ofdistance of the shortest path between the specified one of the pluralityof participating terminals and the participation requesting terminal;determining whether the obtained largest value of distance is less thana predetermined value to generate a second determination result; anddetermining whether to allow the participation requesting terminal toconnect with the plurality of participating terminals through thenetwork based on the second determination result in addition to thefirst determination result.
 13. The method of claim 12, furthercomprising: defining a value of a distance of the shortest path betweenthe terminal and the candidate terminal that is associated with theterminal, which are respectively managed, to be a predetermined value,wherein the obtained largest value of distance is defined based on thepredetermined value.
 14. The method of claim 13, further comprising:transmitting information indicating the obtained largest value ofdistance to the participation requesting terminal when the determiningdetermines that the participation requesting terminal is allowed toconnect with the plurality of participating terminals through thenetwork.
 15. The method of claim 14, further comprising: extractingidentification information for identifying one or more candidateterminals that are associated with the participation requestingterminal; and transmitting information indicating that the participationrequesting terminal is participating in the session, to the one or morecandidate terminals identified by the extracted identificationinformation, when the participation requesting terminal is allowed toconnect with the plurality of participating terminals.
 16. The method ofclaim 14, further comprising: receiving a request for notifying theparticipation requesting terminal of the session being performed by theplurality of participating terminals, from a first terminal of theplurality of participating terminals before the request forparticipating in the session is received from the participationrequesting terminal; extracting identification information foridentifying one or more candidate terminals that are associated with thefirst terminal that sends the request to obtain extracted candidateterminal identification information of the first terminal; determiningwhether the extracted candidate terminal identification information ofthe first terminal includes the identification information of theparticipation requesting terminal; and transmitting informationregarding the session being performed by the plurality of participatingterminals to the participation requesting terminal, when the extractedcandidate terminal identification information of the first terminalincludes the identification information of the participation requestingterminal.
 17. The method of claim 16, further comprising: transmittinginformation to be used for connecting with a relay terminal thatexchanges contents data among the participating terminals through thesession, to the participation requesting terminal, when theparticipation requesting terminal is allowed to connect with theplurality of participating terminals.